数据可视化——Seaborn

简介

EDA过程中,想要更了解你的数据,选择一个合适的可视化工具,可以说会让你的工作事半功倍。
本文主要介绍一个以matplotlib作为底层,更易上手的作图库seaborn

Seaborn

基于matplotlib的可视化库,旨在使默认的数据可视化更加悦目,简化复杂图表创建,可以与pandas很好的集成。

简易用法

1
2
3
4
5
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns #一旦导入了seaborn,matplotlib的默认作图风格就会被覆盖成seaborn的格式
%matplotlib inline
#在jupyter notebook里作图,需要用到这个命令

读取原始数据(这是一份红酒成分与口感评分数据)

1
2
winedata=pd.read_csv('winequality-red.csv')
winedata.head()

png

直方图——seaborn.distplot()

如对上面的quality列做直方图,保留概率密度曲线

1
2
3
4
sns.distplot(winedata['quality']) # 不需要概率密度曲线直接将 kde=False 即可
sns.set_style('dark') #设置背景色
sns.utils.axlabel('Quality', 'Frequency') #设置X,Y坐标名
sns.plt.show()

png

折线图

1
2
sns.factorplot(data=winedata, x='quality', y='total sulfur dioxide',size=3)
sns.plt.show()

png

柱状图——seaborn.barplot()

1
2
3
sns.factorplot(data=winedata, x='quality', y='total sulfur dioxide',kind='bar',size=3)
#ax = sns.barplot(data=winedata, x='quality', y='total sulfur dioxide',ci=0)
sns.plt.show()

png

散点图——seaborn.stripplot()

1
2
3
4
5
6
7
temp=sns.FacetGrid(winedata, hue='quality', size=3) #hue参数设置区分色彩列
temp.map(plt.scatter, 'volatile acidity', 'alcohol')
temp.add_legend()
sns.plt.show()
#ax = sns.stripplot(x='quality', y='alcohol', data=winedata) #普通散点图
#ax = sns.stripplot(x='quality', y='alcohol', data=winedata, jitter=True) #带抖动的散点图
#sns.plt.show()

png

箱型图——seaborn.boxplot()

以quality为X轴,alcohol为Y轴,做出箱线图,可以看出异常值

1
2
3
ax=sns.boxplot(x='quality', y='alcohol', data=winedata)
ax=sns.stripplot(x='quality', y='alcohol', data=winedata, jitter=True, color='.3') #加上点,jitter=True 使各个散点分开,要不然会是一条直线
sns.plt.show()

png

小提琴图——seaborn.violinplot()

可以看出密度分布

1
2
3
ax = sns.violinplot(x='quality', y='alcohol', data=winedata, size=5)
ax = sns.swarmplot(x='quality', y='alcohol', data=winedata,color='.9')
sns.plt.show()

png

多变量作图——seaborn.pairplot()

seaborn可以一次性两两组合多个变量做出多个对比图,有n个变量,就会做出一个n × n个格子的图,相同的两个变量之间以直方图展示,不同的变量则以散点图展示,要注意的是数据中不能有NaN(缺失的数据),否则会报错。

1
2
sns.pairplot(winedata, vars=['quality', 'residual sugar','alcohol'],hue='quality')
sns.plt.show()

png

回归图——seaborn.lmplot()、seaborn.regplot()

1
2
sns.lmplot(x='volatile acidity', y='alcohol', data=winedata) # hue参数进行分组拟合,markers=['o', 'x'],col参数不同组的子图
sns.plt.show()

png

1
2
sns.regplot(x='fixed acidity', y='alcohol', data=winedata)
sns.plt.show()

png

更多用法参考官方手册
点这查看本文.ipynb文件,欢迎纠错~

分享