Python----数据可视化(Seaborn二:绘图一)

常见方法

  • barplot方法 单独绘制条形图

  • catplot方法 可以条形图、散点图、盒图、小提亲图、等

  • countplot方法 统计数量

一、柱状图

python 复制代码
seaborn.barplot(data=None,  x=None, y=None, hue=None, color=None, palette=None)
函数 描述
data 用于绘图的数据集。
x 用于绘制长格式数据的输入。
y 用于绘制长格式数据的输入。
hue 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组
color 用于变量的不同级别的颜色。应该 可以是可以解释的 ,或者是 字典将色调级别映射到 matplotlib 颜色。
palette 用于绘制填充颜色的原始饱和度的比例。大 面片通常使用不饱和的颜色看起来更好,但如果您希望颜色与输入值完美匹配,请将其设置为。1

1.1、常规柱状图

python 复制代码
import seaborn as sns
import pandas as pd
# 示例数据
tips=pd.read_csv('tips.csv')
# 单变量柱状图
sns.barplot(x="day", y="total_bill", data=tips)
# 显示图表
plt.show()

1.2、横向条形图

python 复制代码
import seaborn as sns
import pandas as pd
# 示例数据
tips=pd.read_csv('tips.csv')
# 单变量柱状图
sns.barplot(x="total_bill", y="day", data=tips)
# 显示图表
plt.show()

1.3、分组条图

python 复制代码
import seaborn as sns
import pandas as pd
# 示例数据
tips=pd.read_csv('tips.csv')
import seaborn as sns
# 分组柱状图
sns.barplot(x="day", y="total_bill", hue="sex", data=tips)
# 显示图表
plt.show()

1.4、设置颜色

python 复制代码
import seaborn as sns
# 示例数据
tips=pd.read_csv('tips.csv')
# 设置颜色
sns.barplot(x="day", y="total_bill", data=tips,color='salmon')
sns.barplot(x="day", y="total_bill", hue="sex", data=tips,palette='dark:salmon')
# 显示图表
plt.show()

1.5、 统计数量

python 复制代码
seaborn.countplot(data=None, *, x=None, y=None, hue=None, color=None, palette=None)

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |
| hue | 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组 |
| color | 用于变量的不同级别的颜色。应该 可以是可以解释的 ,或者是 字典将色调级别映射到 matplotlib 颜色。 |

palette 用于绘制填充颜色的原始饱和度的比例。大 面片通常使用不饱和的颜色看起来更好,但如果您希望颜色与输入值完美匹配,请将其设置为。1
python 复制代码
import seaborn as sns 
import matplotlib.pyplot as plt 
import pandas as pd 


tips = pd.read_csv('tips.csv')  

# 通过按天数对数据进行分组并计数
# display(tips.groupby('day').count())  

# 使用ountplot 方法绘制当天小费数量的条形图  
sns.countplot(x="day", data=tips)  

# 显示绘制的图形  
plt.show()

二、直方图

方法

  • histplot方法 绘制单变量或双变量直方图来显示数据集的分布

  • displot方法 绘制直方图、核密度图。可以比较多个变量分布情况

python 复制代码
seaborn.histplot(data=None,x=None, y=None, hue=None, bins='auto',multiple='layer', element='bars',  kde=False, palette=None,color=None)

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |
| hue | 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组 |
| color | 用于变量的不同级别的颜色。应该 可以是可以解释的 ,或者是 字典将色调级别映射到 matplotlib 颜色。 |
| palette | 用于绘制填充颜色的原始饱和度的比例。大 面片通常使用不饱和的颜色看起来更好,但如果您希望颜色与输入值完美匹配,请将其设置为。1 |
| bins | 通用 bin 参数,可以是引用规则的名称, 分箱数或分箱的分隔线。 |
| multiple | 语义映射创建子集时解析多个元素的方法。 仅与单变量数据相关。 {"layer", "减淡", "stack", "fill"} |

elment 直方图统计量的可视化表示形式。 仅与单变量数据相关。 {"bars", "step", "poly"}
python 复制代码
seaborn.displot(data=None, *, x=None, y=None, hue=None, row=None, col=None, weights=None, kind='hist', rug=False, rug_kws=None, log_scale=None, legend=True, palette=None, hue_order=None, hue_norm=None, color=None, col_wrap=None, row_order=None, col_order=None, height=5, aspect=1, facet_kws=None, **kwargs)

| row | 定义子集以在不同 facet 上绘制的变量。 |

col 定义子集以在不同 facet 上绘制的变量。

2.1、常规直方图

python 复制代码
sns.histplot(tips['total_bill'])

python 复制代码
sns.displot(tips['total_bill'])

2.2、核密度估计

核密度估计的作用是用来估计概率密度函数的,它可以用来描述随机变量的密度分布

python 复制代码
sns.histplot(tips['total_bill'],kde=True)
sns.displot(tips['total_bill'], kde=True)

2.3、多变量直方图

python 复制代码
multiple='layer' # 默认值,以层叠的形式展示
multiple='dodge' # 以并列的形式展示
multiple='stack' # 以堆叠的形式展示
multiple='fill' # 以百分比堆叠的形式展示
python 复制代码
sns.histplot(x='total_bill', hue='sex', data=tips)
python 复制代码
sns.histplot(x='total_bill', hue='sex', data=tips, multiple='stack')
python 复制代码
sns.histplot(x='total_bill', hue='sex', data=tips, multiple='dodge')
python 复制代码
sns.histplot(x='total_bill', hue='sex', data=tips, multiple='fill')

2.4、修改一些参数

python 复制代码
sns.histplot(x='total_bill', data=tips, bins=20, color='skyblue', edgecolor='black', linewidth=1.2)
sns.displot(x='total_bill', data=tips, bins=20, color='skyblue', edgecolor='black', linewidth=1.2)

2.5、 累积直方图

python 复制代码
sns.histplot(x='total_bill', data=tips, element='step')
sns.displot(x='total_bill', data=tips, element='step',col='time')

三、折线图

方法

  • lineplot方法 单独绘制折线图

  • relplot方法 绘制折线图、散点图

python 复制代码
seaborn.lineplot(data=None, x=None, y=None, hue=None)

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |

hue 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组
python 复制代码
seaborn.relplot(data=None, *, x=None, y=None, hue=None, row=None, col=None kind='scatter')

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |
| hue | 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组 |
| row | 定义子集以在不同 facet 上绘制的变量。 |
| col | 定义子集以在不同 facet 上绘制的变量。 |

kind 要绘制的情节类型,对应于 seaborn 关系情节。 选项包括 或 。"scatter"``"line"
python 复制代码
sns.lineplot(x=[1,2,3,4,5],y=[1,2,3,4,5])
sns.relplot(x=[1,2,3,4,5],y=[1,2,3,4,5],kind='line')
python 复制代码
import seaborn as sns
# 示例数据
tips = pd.read_csv('tips.csv')  


sns.lineplot(x="day", y="total_bill", data=tips)
sns.relplot(x="day", y="total_bill", data=tips, kind='line')


# 多变量折线图
sns.lineplot(x="day", y="total_bill", data=tips,hue='time')
sns.relplot(x="day", y="total_bill", data=tips,hue='time',kind='line')


# 使用relplot绘制折线图
sns.relplot(x="day", y="total_bill", data=tips,
      kind='line',# 图像类型
      hue='sex',# 分类变量
      col='time') # 分图变量

四、散点图

方法

  • scatterplot方法 主要用于绘制两个数值变量之间的散点图

  • relplot方法 可以绘制多种类型的关系图,包括散点图

python 复制代码
seaborn.scatterplot(data=None, x=None, y=None, hue=None)

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |

hue 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组
python 复制代码
seaborn.relplot(data=None, *, x=None, y=None, hue=None, row=None, col=None kind='scatter')

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |
| hue | 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组 |
| row | 定义子集以在不同 facet 上绘制的变量。 |
| col | 定义子集以在不同 facet 上绘制的变量。 |

kind 要绘制的情节类型,对应于 seaborn 关系情节。 选项包括 或 。"scatter"``"line"
python 复制代码
import seaborn as sns


# 加载数据
tips=pd.read_csv('tips.csv')
# 常规散点图
sns.scatterplot(data=tips,x='total_bill', y='tip')
sns.relplot( data=tips, x='total_bill', y='tip',kind='scatter')
# 多组散点图
sns.scatterplot(data=tips,x='total_bill', y='tip', hue='smoker')
sns.relplot(data=tips,x='total_bill', y='tip', hue='smoker')
# 多变量散点图
sns.relplot(data=tips,x='total_bill', y='tip', hue='smoker',col='time')

五、分散散点图

方法

  • stripplot方法 利用抖动功能绘制分类散点图,以减少过度绘图

  • swarmplot方法 绘制分类散点图,并将点调整为不重叠

  • catplot方法 可以绘制以上2种图,并且可以分图

python 复制代码
seaborn.stripplot(data=None, *, x=None, y=None, hue=None,dodge=False)

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |
| hue | 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组 |

dodge 当一个变量被赋值时,将其设置为 will 沿分类分隔不同色相级别的条带 轴并缩小分配给每个条带的空间量。否则 每个级别的点将绘制在同一条带中。
python 复制代码
seaborn.swarmplot(data=None, *, x=None, y=None, hue=None,dodge=False)

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |
| hue | 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组 |

dodge 当一个变量被赋值时,将其设置为 will 沿分类分隔不同色相级别的条带 轴并缩小分配给每个条带的空间量。否则 每个级别的点将绘制在同一条带中。
python 复制代码
seaborn.catplot(data=None, *, x=None, y=None, hue=None, row=None, col=None, kind='strip')

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |
| hue | 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组 |
| row | 定义子集以在不同 facet 上绘制的变量。 |
| col | 定义子集以在不同 facet 上绘制的变量。 |

kind 要绘制的绘图类型对应于分类的名称 轴级绘图功能。选项有: "strip", "swarm", "box", "violin", "boxen"、"point"、"bar" 或 "count"。
python 复制代码
import seaborn as sns
import pandas as pd


tips=pd.read_csv('tips.csv')

sns.catplot(y="total_bill", x="day", data=tips,hue='sex',dodge=True,marker="D",col='smoker')
python 复制代码
sns.swarmplot(y="total_bill", x="day", data=tips,hue='sex',marker="v")

python 复制代码
sns.catplot(y="total_bill", x="day", data=tips,hue='sex',marker="v",col='smoker',kind='swarm')

六、盒图

方法

  • boxplot方法

  • catplot方法

python 复制代码
seaborn.boxplot(data=None, *, x=None, y=None, hue=None,fill=True,width=0.8, gap=0,notch=False)

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |
| hue | 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组 |
| fill | 定义子集以在不同 facet 上绘制的变量。 |
| gap | 箱体间隔 |
| width | 箱体宽度 |

notch 箱体是否缺口
python 复制代码
seaborn.catplot(data=None, *, x=None, y=None, hue=None, row=None, col=None, kind='strip')

| 函数 | 描述 |
| data | 用于绘图的数据集。 |
| x | 用于绘制长格式数据的输入。 |
| y | 用于绘制长格式数据的输入。 |
| hue | 用于绘制长格式数据的输入。对原有的属性进行更加细致的分组 |
| row | 定义子集以在不同 facet 上绘制的变量。 |
| col | 定义子集以在不同 facet 上绘制的变量。 |

kind 要绘制的绘图类型对应于分类的名称 轴级绘图功能。选项有: "strip", "swarm", "box", "violin", "boxen"、"point"、"bar" 或 "count"。
python 复制代码
import seaborn as sns
import pandas as pd


tips = pd.read_csv('tips.csv')


sns.boxplot(x="day", y="total_bill", data=tips,hue="smoker",
      fill=False, # 填充箱体,默认为True
      gap=0.1,  # 箱体间隔
      width=0.5, # 箱体宽度
      notch=True # 箱体是否缺口
       )
python 复制代码
sns.catplot(x="day", y="total_bill", data=tips,kind="box",col="sex")
相关推荐
Long_poem24 分钟前
【自学笔记】R语言基础知识点总览-持续更新
开发语言·笔记·r语言
luckyext24 分钟前
串口通信ASCII码转16进制及C#串口编程完整源码下载
开发语言·后端·stm32·单片机·mcu·物联网·c#
一只积极向上的小咸鱼35 分钟前
PyTorch 和 Python关系
人工智能·pytorch·python
m0_748255021 小时前
python的sql解析库-sqlparse
数据库·python·sql
源之缘-OFD先行者1 小时前
WPF 与 GMap.NET 结合实现雷达目标动态显示与地图绘制
信息可视化·.net·wpf
zhu_superman1 小时前
c语言中的未定义行为
c语言·开发语言
小爬虫程序猿1 小时前
衣联网的商品列表页面结构是怎样的?
开发语言·爬虫·python
孔令飞1 小时前
18 | 实现简洁架构的 Handler 层
开发语言·ai·云原生·golang·kubernetes
成风6932 小时前
c++比较与对比动态内存分配和回收运算符new,new[],delete,delete[]。
开发语言·c++
咩咩觉主2 小时前
C# &Unity 唐老狮 No.8 模拟面试题
开发语言·unity·c#