Seaborn数据可视化:关系图、分布图与分类图全解(折线/散点/盒图/小提琴/热力/点图)

折线图

方法

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

常规

python 复制代码
import seaborn as sns

#加载数据
tips = sns.load_dataset("tips")

#绘制简单折线图
sns.lineplot(x=[1,2,3,4,5,6],y=[1,4,9,16,25,36])
sns.relplot(x=[1,2,3,4,5,6],y=[1,4,9,16,25,36],kind='line')

额外设置

python 复制代码
import seaborn as sns
# 示例数据
tips = sns.load_dataset("tips")

sns.lineplot(data=tips,x='day',y='total_bill')

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

# 多变量折线图
sns.lineplot(data=tips,x='day',y='total_bill',hue='sex')

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

sns.relplot(data=tips,x='day',y='total_bill',kind='line',hue='sex',col='time')
#这个是不能用的
#sns.lineplot(data=tips,x='day',y='total_bill',kind='line',hue='sex',col='time')

散点图

方法

  • scatterplot方法 主要用于绘制两个数值变量之间的散点图
  • relplot方法 可以绘制多种类型的关系图,包括散点图

常规

python 复制代码
import seaborn as sns

#加载数据
tips = sns.load_dataset("tips")

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

sns.relplot(data=tips,x='tip',y='total_bill')

多组散点图

python 复制代码
import seaborn as sns

#加载数据
tips = sns.load_dataset("tips")

#设置分组
sns.scatterplot(data=tips,x='tip',y='total_bill',hue='sex')

sns.relplot(data=tips,x='tip',y='total_bill',hue='sex')

根据变量分图

python 复制代码
import seaborn as sns

#加载数据
tips = sns.load_dataset("tips")

#根据变量分图
sns.relplot(data=tips,x='tip',y='total_bill',hue='sex',col='smoker')

分类散点图

方法

  • stripplot方法 利用抖动功能绘制分类散点图,以减少过度绘图
  • swramplot方法 绘制分类散点图,并将点调整为不重叠
  • catplot方法 可以绘制以上2种图,并且可以分图

绘制分类散点图

python 复制代码
import seaborn as sns

tips = sns.load_dataset("tips")

# 绘制分类散点图
sns.stripplot(data=tips,y='total_bill')

sns.stripplot(data=tips,x='total_bill')

sns.stripplot(data=tips,x='day',y='total_bill')

sns.stripplot(data=tips,y='day',x='total_bill')

#分组
sns.stripplot(data=tips,x='day',y='total_bill',hue='sex',dodge=True)

#绘制展开的散点图
sns.catplot(data=tips,x='day',y='total_bill',hue='sex',dodge=True,kind='swarm')

sns.stripplot(data=tips,x='day',y='total_bill',hue='sex',dodge=True,marker='v')

盒图

方法

  • boxplot方法
  • catplot方法

代码

python 复制代码
import seaborn as sns

#加载数据
tips = sns.load_dataset('tips')

#绘制盒图
sns.boxplot(data=tips,y='total_bill')   #单独一个变量

sns.boxplot(data=tips,y='total_bill',x='day') #两个变量

sns.boxplot(data=tips,y='total_bill',x='day',hue='sex') #数据分组

sns.boxplot(data=tips,y='total_bill',x='day',hue='sex',
            fill=True,   #填充盒图,默认是True
            gap=0.5,    #盒图之间的间隔
            width=1,    #盒图的宽度
            notch=True, #盒图是否是凹槽的形式
            ) 

sns.catplot(data=tips,y='total_bill',x='day',hue='sex',
            fill=True,   #填充盒图,默认是True
            gap=0.5,    #盒图之间的间隔
            width=1,    #盒图的宽度
            notch=True, #盒图是否是凹槽的形式
            kind = 'box',
            col='time'
            ) 

小提琴图

​   提琴图的作用与箱形须线图类似。它显示了 数据点按一个(或多个)变量分组后的分布情况。 与箱图不同的是,每一个小提琴图都是通过对基础分布的核密度估计来绘制的。

方法

  • violinplot方法 绘制单图小提琴图
  • catplot方法 绘制多图小提琴图

代码

python 复制代码
import seaborn as sns

#加载数据
tips = sns.load_dataset('tips')

#绘制小提琴图
sns.violinplot(data=tips,x="total_bill") #X轴为total_bill列

sns.violinplot(data=tips,y="total_bill") #Y轴为total_bill列

sns.violinplot(data=tips,x='day',y='total_bill')

sns.violinplot(data=tips,x='day',y='total_bill',hue='sex')  #以性别分组数据

sns.catplot(data=tips,x='day',y='total_bill',hue='sex',kind='violin')

sns.catplot(data=tips,x='day',y='total_bill',hue='sex',kind='violin',col='smoker')

热力图

方法

  • heatmap方法

代码

python 复制代码
import seaborn as sns

# 示例数据
flights = sns.load_dataset("flights")
flights

#转换数据格式
data = flights.pivot(index='month',columns='year',values='passengers')
data

#绘制热力图
sns.heatmap(data)

#绘制热力图,显示数字
sns.heatmap(data,annot=True,fmt='d')

#设置矩阵中每个小块的大小
sns.heatmap(data,annot=True,fmt='d',linewidths='0.5')

#设置热力图的颜色色条
sns.heatmap(data,annot=True,fmt='d',linewidths='0.5',cbar=False)

#设置颜色
sns.heatmap(data,annot=True,fmt='d',linewidths='0.5',cbar=False,cmap='Blues')

#设置值的范围
sns.heatmap(data,annot=True,fmt='d',linewidths='0.5',
            cbar=False,cmap='Blues',vmin='300',vmax=500)

点图

  点图用于探索和比较两个分类变量之间的关系

主要特点和使用场景包括:

  • 中心趋势的表示: 点图通过在坐标轴上的点表示每个组别的中心趋势,通常是均值。这使得你可以直观地比较不同组别的中心位置。
  • 不确定性的展示: 除了点的位置表示中心趋势外,点图还通过垂直线(误差棒)表示中心趋势的不确定性,通常是置信区间。这有助于了解估计值的精度。
  • 适用于两个分类变量: 点图的主要用途是比较两个分类变量之间的关系。一个分类变量通常用于横轴,另一个分类变量用于纵轴

方法

  • pointplot方法
  • catplot方法

代码

python 复制代码
import seaborn as sns

#加载数据
tips = sns.load_dataset('tips')

#绘制点图
sns.pointplot(data=tips,x='day',y='total_bill')

sns.pointplot(data=tips,x='day',y='total_bill',hue='sex')   #分组

sns.pointplot(data=tips,x='day',y='total_bill',hue='sex',dodge=True)    #偏离

sns.pointplot(data=tips,x='day',y='total_bill',
              hue='sex',dodge=True,
              markers=['o','s'],
              linestyles=['-','--']
              )    #样式

#使用catpolt绘制点图
sns.catplot(data=tips,x='day',y='total_bill',
              hue='sex',dodge=True,
              markers=['o','s'],
              linestyles=['-','--'],
              kind='point'
              )    

#分图
sns.catplot(data=tips,x='day',y='total_bill',
              hue='sex',dodge=True,
              markers=['o','s'],
              linestyles=['-','--'],
              kind='point',
              col='smoker'
              )    
相关推荐
追梦人电立电子3 小时前
X、Y电容的分类与选择
人工智能·分类·数据挖掘·追梦人电力电子
绎奇PPT4 小时前
中国专利奖答辩 PPT 逻辑梳理 + 视觉设计
信息可视化·powerpoint·ppt
叫我:松哥5 小时前
基于深度卷积神经网络的水果图片分类算法设计与实现,有ResNet50的迁移学习模型,准确率达95%
人工智能·python·神经网络·机器学习·分类·cnn·迁移学习
JZC_xiaozhong5 小时前
赛狐ERP订单如何自动同步到金蝶云星空?从发货到应收单生成,全程实时
大数据·数据挖掘·数据分析·数据集成与应用集成·赛狐erp集成·金蝶系统集成·系统应用对接
王牌狮AIen7 小时前
AI营销智能体实战:OPC如何重构自主获客闭环?
大数据·人工智能·重构·数据挖掘·geo·ai营销
KaMeidebaby8 小时前
卡梅德生物技术快报|重组蛋白的表达和纯化:工艺调试全记录:大肠杆菌体系重组蛋白的表达和纯化参数标定(肠激酶轻链案例)
前端·人工智能·算法·数据挖掘·数据分析
ZHW_AI课题组8 小时前
基于KNN的帕尔默企鹅种类预测分类
人工智能·机器学习·分类·数据挖掘
2401_885665199 小时前
从零搭建卷积神经网络:基于PyTorch实现MNIST手写数字分类
pytorch·python·神经网络·算法·机器学习·分类·cnn
SAP上海工博云署9 小时前
生产采购财务一体化ERP选型指南(中小制造/工贸企业适用)
大数据·人工智能·信息可视化·制造·信息与通信
梦想三三9 小时前
矿物智能识别项目实战(一):从零开始清洗工业矿物数据
大数据·人工智能·数据挖掘