Pandas入门篇(三)-------数据可视化篇3(seaborn篇)(pandas完结撒花!!!)

目录

  • 概述
  • 一、语法
  • 二、常用单变量绘图
    • 1. 直方图(histplot)
    • 2. 核密度预估图(kdeplot)
    • 3. 计数柱状图(countplot)
  • 三、常用多变量绘图
    • 1.散点图
      • (1) scatterplot
      • (2)regplot 散点图+拟合回归线
      • (3)jointplot 散点图+直方图
    • 2.蜂巢图
    • 3. 2D KDE图
    • 4.箱线图(boxplot)
    • 5.小提琴图(violinplot)
  • 四、Seaborn主题和样式
  • 结语

概述

Seaborn是一个基于Matplotlib的Python数据可视化库,它提供了一种简单而美观的界面,帮助初学者轻松创建各种统计图表和数据可视化效果。

Seaborn的设计哲学以美学为中心,致力于创建最佳的数据可视化,同时也保持着与Python生态系统的高度兼容性,可以轻松集成到Python数据分析以及机器学习的工作流程中。Seaborn拥有丰富的可视化函数,能够创建多种类型的图表,包括折线图、柱状图、散点图、核密度图、热力图等等。

相比Matplotlib而言,Seaborn的绘图接口更为集成,通过少量参数设置就能实现大量封装绘图。多数图表具有统计学含义,例如分布、关系、统计、回归等。此外,它对Pandas和Numpy数据类型支持非常友好,风格设置也更为多样,包括风格、绘图环境和颜色配置等。

在进行EDA(Exploratory Data Analysis,探索性数据分析)过程中,Seaborn往往更为高效。然而,需要注意的是,Seaborn与Matplotlib的关系是互为补充而非替代,多数场合中Seaborn是绘图首选,而在某些特定场景下则仍需用Matplotlib进行更为细致的个性化定制。

总的来说,Seaborn是一个功能强大且易于使用的数据可视化库,无论是初学者还是有一定经验的数据分析师,都可以从中获得帮助,更好地理解和展示数据。

一、语法

import seaborn as sns
sns.图表类型plot(data=Dataframe, x='列1',y='列2',hue='类别型' )

参数解释:

  • x, y:
    x:指定用于柱状图横坐标的变量名(类别型数据)。
    y:指定用于柱状图纵坐标的变量名(数值型数据),即每个类别的值。
  • data:
    指定绘图所需的数据集,通常是一个 pandas DataFrame。
  • hue:
    用于将数据进行分组的变量名。这个变量将决定每个柱子中的不同颜色分段,用于表示另一个分类维度的信息。

二、常用单变量绘图

1. 直方图(histplot)

语法:

sns.histplot(data=Dataframe,x=,y=,bins=n,kda=False,hue='分类变量')

参数:

  • data:
    要绘制直方图的数据集,通常是一个 pandas DataFrame 或 Series,也可以是其他可以被转换为数组的数据类型。

  • x, y:
    x 和 y 用于指定要绘制直方图的数据列。对于单变量直方图,通常只需要指定 x 参数。如果指定了 y 参数,则绘制的是二维直方图(或称为热图)。

  • bins:
    指定直方图的区间数量。可以是整数(表示区间数量)或区间边界的序列。

  • kde
    是否使用 Kernel Density Estimation (KDE) 来绘制数据的概率密度曲线(核密度预估图)。

  • hue:
    指定用于分组绘制直方图的分类变量。不同组的直方图会以不同的颜色显示。(用于多变量时)

sns.histplot(data=tip,x='total_bill',bins= 10,kde= True)

在这里插入图片描述

2. 核密度预估图(kdeplot)

sns.kdeplot(data=tip,x='total_bill')

图表展示:
在这里插入图片描述

3. 计数柱状图(countplot)

sns.countplot(data=tip,x='day')

图表展示:
在这里插入图片描述

三、常用多变量绘图

1.散点图

(1) scatterplot

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示汉字
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
# 散点图
# 1. 绘制画布
fig, ax = plt.subplots(figsize=(12, 6))
# 2. 绘制散点图, x轴: 总账单, y轴: 小费, hue: 基于哪列分组
sns.scatterplot(data=tips, x='total_bill', y='tip', hue='sex')
# 3. 设置标题
ax.set_title('总账小费之间关系图')
# 4. 绘制图片
plt.show()

图表展示:
在这里插入图片描述

(2)regplot 散点图+拟合回归线

fit_reg参数: 默认是True 会拟合一条直线 就是利用这一份数据 跑了线性回归

# 散点图
# 1. 绘制画布
fig, ax = plt.subplots(figsize=(12, 6))

# 2. 绘制散点图
# fit_reg 默认是True 会拟合一条直线 就是利用这一份数据 跑了线性回归
# fit_reg=False 可以关掉
sns.regplot(data=tips, x='total_bill', y='tip', fit_reg=True)
# 3. 设置标题
ax.set_title('总账小费之间关系图')
# 4. 绘图
plt.show()

图表展示:
在这里插入图片描述

(3)jointplot 散点图+直方图

# 2. 绘制散点图
sns.jointplot(data=tips, x='total_bill', y='tip')

图表展示:
在这里插入图片描述

2.蜂巢图

kinde=‘hex’, 加了这个属性就是 蜂巢图, 不加就是散点图.
height 作用为改变图表大小

# kinde='hex', 加了这个属性就是 蜂巢图, 不加就是散点图.
# sns.jointplot(data=tips, x='total_bill', y='tip', height=12)              # 散点图, 每行每列再绘制直方图.
sns.jointplot(data=tips, x='total_bill', y='tip', kind='hex', height=12)    # 蜂巢图, 每行每列再绘制直方图.
plt.show()

图表展示:
在这里插入图片描述

3. 2D KDE图

2D KDE图,即二维核密度估计图(Kernel Density Estimation plot),是一种在二维平面上展示数据概率密度分布的可视化工具。在统计学和数据可视化中,KDE用于估计一个变量的概率密度函数,对于二维数据,可以估计两个变量之间的联合概率密度。

# 一维KDE 只传入x, 或者 只转入Y
# 二维KDE x,y 都传入
# fill=True   是否填充曲线内的颜色
# cbar=True  是否显示 右侧的颜色示意条
fig, ax = plt.subplots(figsize=(12, 6))
sns.kdeplot(data=tips, x='total_bill', y='tip', fill=True, cbar=True)
ax.set_title('2D KDE图')
plt.show()

图表展示:
在这里插入图片描述

4.箱线图(boxplot)

箱线图(Box Plot),又称为箱型图、盒须图、盒状图或箱状图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据的分布特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数,然后, 连接两个四分位数画出箱体,再将上边缘和下边缘与箱体相连接,中位数在箱体中间。

箱线图包含的主要数据和含义如下:

中位数(Q2):数据集的中位数,即数据集中处于中间位置的数。在箱线图中,中位数以一条线表示,位于箱体的中间。
上四分位数(Q3):数据集中大于或等于所有数据75%的数。在箱线图中,上四分位数是箱体顶部的线。
下四分位数(Q1):数据集中小于或等于所有数据25%的数。在箱线图中,下四分位数是箱体底部的线。
上边缘(最大值):数据集中的最大值,但不包括任何可能被视为异常值的点。在箱线图中,上边缘以一条线表示,位于箱体上方的短线上。
下边缘(最小值):数据集中的最小值,同样不包括异常值。在箱线图中,下边缘以一条线表示,位于箱体下方的短线上。
此外,箱线图通常还会标出异常值,这些点通常远离箱体的主体部分,可能表示数据中的错误、测量误差或特殊事件。

# 箱线图: 用于显示多种统计信息:最小值,1/4分位,中位数,3/4分位,最大值,以及离群值(如果有)
# 1. 绘制画布, 坐标
fig, ax = plt.subplots(figsize=(12, 6))
# 2. 绘制 箱线图.
sns.boxplot(data=tips, x='time', y='total_bill')
ax.set_title('总账小费之间关系图')
plt.show()

代码实现:
在这里插入图片描述

5.小提琴图(violinplot)

小提琴图(Violin Plot)是一种数据可视化图表,它结合了箱线图和核密度图的特点,用于展示数据的分布和概率密度。小提琴图通常用于比较多个组或类别之间的数据分布,以及观察单个变量的分布情况。

小提琴图的主体部分是一组垂直排列的“小提琴”形状,每个小提琴代表一个数据组或类别。小提琴的宽度表示数据点在该位置的密度,越宽表示该位置的数据点越多,越窄则表示数据点越少。中间的黑色粗线条表示四分位数的范围,即25%至75%的数据分布范围。从小提琴的顶部和底部延伸出来的细线(称为“须”),表示数据的最大值和最小值或95%的置信区间。

与箱线图相比,小提琴图的优势在于除了显示中位数、四分位数等统计数据外,还展示了数据的整体分布形状,从而提供了更丰富的信息。

# 多变量, 通过 颜色区分.
# 例如: 使用violinplot函数时,可以通过hue参数按性别(sex)给图着色, 可以为“小提琴”的左右两半着不同颜色,用于区分性别

# white, dark, whitegrid, darkgrid, ticks
# sns.set_style('ticks')

fig, ax = plt.subplots(figsize=(12, 6))
sns.violinplot(data=tips, x='time', y='total_bill', hue='sex', split=True) # hue='性别'
ax.set_title('总账小费之间关系图')
plt.show()

图表展示:
在这里插入图片描述

四、Seaborn主题和样式

上面的Seaborn图都采用了默认样式,可以使用sns.set_style函数更改样式。
该函数只要运行一次,后续绘图的样式都会发生变化
Seaborn有5种样式:

  • darkgrid 黑色网格(默认)
  • whitegrid 白色网格
  • dark 黑色背景
  • white 白色背景
  • ticks 刻度线
    语法:
sns.set_style('主题名')

fig,ax = plt.subplots()
ax = sns.violinplot(x='time',y='total_bill',hue='sex',data = tips,split = True)

结语

到目前为止panda入门已经学完了,接下来就是运用pandas强大的功能去完成实际的项目啦。
本系列博客主要深入介绍了Pandas这个强大的Python数据处理库,其核心功能和应用场景。我们详细探讨了以下几个方面:

  • 核心数据结构:Pandas提供了两个核心数据结构——DataFrame和Series。DataFrame是一个二维的、大小可变的、可以存储多种类型数据的表格型数据结构,它非常适合存储和处理现实世界中的表格数据,如CSV文件或数据库中的数据。Series则是一维数组型数据结构,用于处理单一类型的数据序列。

  • 数据操作功能:Pandas提供了丰富的数据操作功能,包括数据筛选、排序、分组聚合、数据转换等。这些功能使得用户可以轻松地对数据进行各种复杂的操作,从而满足不同的数据处理和分析需求。

  • 数据处理流程:我们学习了Pandas在数据处理流程中的应用,包括数据读取、数据清洗、数据转换和数据输出等步骤。Pandas能够方便地处理缺失值、异常值,提供数据重塑和合并等功能,使数据处理流程更加高效和自动化。

  • 与其他库的集成:Pandas能够与其他Python库无缝集成,如NumPy用于数值计算、Matplotlib、seaborn用于数据可视化等。这种集成性使得Pandas在数据处理和分析领域具有更广泛的应用前景。

  • 性能优化:我们还探讨了如何在使用Pandas时进行优化,包括利用向量化操作提高性能、选择合适的数据类型减少内存占用等。这些优化技巧能够帮助我们更高效地使用Pandas处理大规模数据集。

下次的专栏就是机器学习啦,如果学习的途中有疑问,欢迎在评论区留言,有时间的话,一定会回复哈!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/587869.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring 】Spring MVC 入门Ⅱ

Spring MVC 入门Ⅱ 一、接收Cookie / Session 这两者都是用来保存用户信息的,但不同的是: Cookie存在客户端 Session存在服务器 Session产生时会生成一个唯一性的SessionID,这个SessionID可以用于匹配Session和Cookie SessionID可以在Cooki…

【kettle003】kettle访问SQL Server数据库并处理数据至execl文件

一直以来想写下基于kettle的系列文章,作为较火的数据ETL工具,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 熟悉、梳理、总结下Microsoft SQL Server 2022关系数据库相关知识体系 3.欢迎批评指正&#xf…

ChatGPT 记忆功能上线 能记住你和GPT互动的所有内容

你和ChatGPT的互动从今天开始变得更加智能!ChatGPT现在可以记住你的偏好和对话细节,为你提供更加相关的回应。和它聊天,你可以教它记住新的东西,例如:“记住我是素食主义者,当你推荐食谱时。”想了解ChatGP…

吴恩达机器学习笔记:第 9 周-15 异常检测(Anomaly Detection) 15.1-15.2

目录 第 9 周 15、 异常检测(Anomaly Detection)15.1 问题的动机15.2 高斯分布 第 9 周 15、 异常检测(Anomaly Detection) 15.1 问题的动机 在接下来的一系列视频中,我将向大家介绍异常检测(Anomaly detection)问题。这是机器学习算法的一个常见应用。这种算法的…

Qwen-Audio:推动通用音频理解的统一大规模音频-语言模型(开源)

随着人工智能技术的不断进步,音频语言模型(Audio-Language Models)在人机交互领域变得越来越重要。然而,由于缺乏能够处理多样化音频类型和任务的预训练模型,该领域的进展受到了限制。为了克服这一挑战,研究…

ClickHouse安装(成功安装)

1.下载安装包 下面通过阿里镜像(https://mirrors.aliyun.com/clickhouse/rpm/lts/)进行下载,下载哪里,自行指定。 # deb包下载使用如下4行 wget https://mirrors.aliyun.com/clickhouse/deb/pool/stable/clickhouse-client_22.8…

图像处理的一些操作(1)

图像处理 1.安装PIL,skimage库1.1导入skimage库中的oi模块和data模块 2.读取图像文件2.1读取图像文件2.2 以灰度模式读取图像2.3 查看示例图像的目录路径2.4 读取chelsea图片2.5 加载示例图片并保存2.6 获得加载图片的信息2.6.1 输出图片类型2.6.2 输出图片尺寸2.6.…

44. UE5 RPG 初始化敌人的属性

在正常的游戏中,我们应该考虑如何去初始化角色属性,并且要给角色分好类型。比如,在我们游戏中,我们如何去初始化小兵的属性,并且还要实现小兵随着等级的增长而增加属性。而且就是小兵也有类型的区分,比如我…

Unity ParticleSystem 入门

概述 在项目的制作过程成,一定少不了粒子系统的使用吧,如果你想在项目粒子效果,那这部分的内容一定不要错过喔!我添加了理解和注释更好理解一点! Common Attribute(粒子通用属性) Duration:粒子持续的时间…

分类规则挖掘(二)

目录 三、决策树分类方法(一)决策树生成框架(二)ID3分类方法(三)决策树的剪枝(四)C4.5算法 三、决策树分类方法 决策树 (Decision Tree) 是从一组无次序、无规则,但有类别…

代谢组数据分析七:从质谱样本制备到MaxQuant搜库

前言 LC-MS/MS Liquid Chromatography-Mass Spectrometry(LC-MS/MS ,液相色谱-质谱串联)可用于残留化合物检测、有机小分子检测、鉴定和定量污染物以及在医药和食品领域添加剂检测和生物小分子等检测。 LC-MS/MS一般包含五个步骤&#xff…

Go Web 开发基础【用户登录、注册、验证】

前言 这篇文章主要是学习怎么用 Go 语言(Gin)开发Web程序,前端太弱了,得好好补补课,完了再来更新。 1、环境准备 新建项目,生成 go.mod 文件: 出现报错:go: modules disabled by G…

GAI工具哪家强?(ChatGPT 4 vs 文心一言)

开始之前, 先来看看 GAI和AI的区别和关系。 AI 和GAI AI 和GAI的概念 AI(Artificial Intelligence)是人工智能的缩写,是计算机科学的一个分支,旨在使机器像人类一样进行学习和思考。AI技术的研究领域包括机器人、语…

吴恩达2022机器学习专项课程(一)8.2 解决过拟合

目录 解决过拟合(一):增加数据解决过拟合(二):减少特征特征选择缺点 解决过拟合(三):正则化总结 解决过拟合(一):增加数据 收集更多训…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习四

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

UnityWebGL使用sherpa-ncnn实时语音识别

k2-fsa/sherpa-ncnn:在没有互联网连接的情况下使用带有 ncnn 的下一代 Kaldi 进行实时语音识别。支持iOS、Android、Raspberry Pi、VisionFive2、LicheePi4A等。 (github.com) 如果是PC端可以直接使用ssssssilver大佬的 https://github.com/ssssssilver/sherpa-ncn…

unity入门——按钮点击了却无法调用函数

查阅了一番都没有解决问题,最后发现问题是由button的Onclick()事件绑定了代码脚本而不是游戏对象导致的。 如果Onclick()事件绑定的是代码脚本,则下拉框里没有函数,但是点击MonoScript后能手动填入函数名(本以为这样就能实现调用…

使用Python的Tkinter库创建你的第一个桌面应用程序

文章目录 准备工作创建窗口和按钮代码解释运行你的应用程序结论 在本教程中,我们将介绍如何使用Python的Tkinter库创建一个简单的桌面应用程序。我们将会创建一个包含一个按钮的窗口,点击按钮时会在窗口上显示一条消息。 准备工作 首先,确保…

【Python】常用数据结构

1、熟悉字典和列表 2、使用条件判断语句 3、list列表中计算 1、从键盘输人一个正整数列表,以-1结束,分别计算列表中奇数和偶数的和。 (1)源代码: # 初始化奇数和偶数的和为0 odd_sum 0 even_sum 0 #输入 while True:num int(input(&qu…

java+jsp+Oracle+Tomcat 记账管理系统论文(二)

⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️ ➡️点击免费下载全套资料:源码、数据库、部署教程、论文、答辩ppt一条龙服务 ➡️有部署问题可私信联系 ⬆️⬆️⬆️​​​​​​​⬆️…