折线图
方法
- 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'
)