Python编程数据分析篇之Seaborn绘图
文章目录
关系型绘图
seaborn.relplot()
这个函数功能非常强大,可以用来表示多个变量之间的关联关系。默认情况下是绘制散点图,也可以绘制线形图,具体绘制什么图形是通过kind参数来决定的。实际上以下两个函数就是relplot的特例:
- 散点类型:scatterplot --> relplot(kind=‘scatter’)
- 线性类型:lineplot --> relplot(kind=‘line’)
基本使用
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips',cache=True)
sns.relplot(x='total_bill',y='tip',data=tips)
plt.show()
hue参数
hue参数是用来控制第三个变量的颜色显示的。比如我们在以上图的基础之上体现出星期几的参数,那么可以通过以下代码来实现。
sns.relplot(x='total_bill',y='tip',hue='day',data=tips)
col和row参数
col和row,可以根据某个属性的值的个数将图分割成多列或多行。比如在以上的基础上我们想要把Lunch和Dinner分割成两个图来显示,可以通过以下代码来实现。
sns.relplot(x='total_bill',y='tip',data=tips,hue='day',col='time')
分类绘图
分类图的绘制采用的是sns.catplot来实现的。cat是category的简写。这个方法默认绘制的是分类散点图,如果想要绘制其它类型的图,同样可以通过kind参数来指定。
主要分为:
- 分类散点图
- 分类分布图
- 分类统计图
分类散点图
分类散点图比较适合数据量不是很大的情况,用catplot来实现,但也有以下两个特别的方法。
- stripplot():catplot(kind=‘strip’) 默认的
- swarmplot():catplot(kind=‘swarm’)
sns.catplot(x='total_bill',y='tip',data=tips,hue='sex')
分类分布图
分类分布图主要是根据分类来看,然后在每个分类下数据的分布情况。也是通过catplot来实现,以下三个方法分别是不同的kind参数。
- 箱型图:boxplot() (with kind=‘box’)
- 小提琴图:violinplot() (with kind=‘violin’)
小提琴图实际上就是两个对称的核密度曲线合并起来,然后中间是一个箱型图(也可以为其它图形)
分类统计图
分类统计图则是根据分类统计每个分类下的数据的个数或者比例。有以下几种方式:
- 条形图:barplot() (with kind=‘bar’)
- 柱状图:countplot() (with kind=‘count’)
- 点线图:pointplot() (with kind=‘point’)
条形图
seaborn中的条形图具有统计功能,可以统计出比例、平均数,也可以按照你想要的统计函数来统计。示例代码如下:
sns.catplot(x='day',y='totao_bill',data=tips,kind='bar')
柱状图
seaborn中的柱状图函数中的参数x和y不能同时存在。代码示例如下:
sns.catplot(y='totao_bill',data=tips,kind='count')
点线图
sns.catplot(y='totao_bill',data=tips,kind='point')
分布绘图
分布绘图主要分为单变量分布和二变量分布以及pairplot分布。
单变量分布
单一变量主要就是通过直方图来绘制。在seaborn中直方图的绘制采用distplot,其中dist是distribution的简写,不是histogram的简写。示例代码如下:
titanic = pd.read_csv('titanic.csv')
sns.distplot(titanic.age,kde=False,bins