2020了,你还不会用seaborn?

Seaborn

提到python画图,我们第一个想到的库一定是matplotlib,但是随着大家眼光的提高,matplotlib画出的图渐渐“失宠”了,今天就让我们来了解一下建立在matplotlib上的绘图库——seaborn。

 

先来看一下对于seaborn的官方说明:


- 面向数据集的API,用于检查多个变量之间的关系;
- 专门支持使用分类变量显示观察结果或汇总统计信息;
- 可视化单变量或双变量分布以及在数据子集之间进行比较的选项;
- 不同种类因变量的线性回归模型的自动估计和绘图;
- 方便查看复杂数据集的整体结构;
- 用于构造多图网格的高级抽象,可让您轻松构建复杂的可视化;
- 带有几个内置主题的 matplotlib图形样式的精确控制。

 

导入数据

在seaborn中含有许多的示例数据,我们选取其中一个较为简单的数据集开始我们本文对seaborn的讲解。

import seaborn as sns# 加载数据集,sns加载的数据集是dataframe类型flights_long = sns.load_dataset("flights")flights_long.head()

得到的结果如下:

 

直方图

接下来就让我们先来画一个简单的直方图吧:

# 直方图(数值型)# kde:用于控制密度曲线的有无(默认True)sns.distplot(flights_long['passengers'], kde=True)

再来看一个更高端的统计直方图:

# 统计直方图sns.countplot(flights_long['years'])

再来看一下显示数据分布情况的图形:

# 显示数据的分布情况 rugplotsns.rugplot(flights_long['passengers'])

 

密度曲线图

 

密度图可以很好的展示出一个属性在各个取值上的分布情况,看一下它的绘制方法:

# 密度曲线# shade控制是否进行区域填充sns.kdeplot(flights_long['passengers'], shade=True)

 

散点图

 

散点图可以很好的展示出两个特征的属性值之间的关系,看一下绘制散点图的代码:

sns.stripplot(x='year', y='passengers', data=flights_long)

下面再来展示一种绘制散点图的方法,与上面不同的是,该方法绘制出的图中的点 不会重叠。

sns.swarmplot(x='year', y='passengers', data=flights_long)

 

箱线图

 

箱线图能够很好的展示出两个特征的属性值上的整体分布情况。

sns.boxplot(x='year', y='passengers', data=flights_long)

 

小提琴图

 

小提琴图可以看作是箱线图的升级版,可以用来展示多组数据的分布状态以及概率密度,先来看一下它的概念图:

再来看一下它的绘制方法:

sns.violinplot(x='year', y='passengers', data=flights_long)

 

相关性图

 

相关性图,顾名思义,就是为了展示数据之间的相关性。

sns.pairplot(flights_long)

还可以根据种类来绘制彩色的相关性图:

# hue:根据某一个种类作出相关颜色的图。# palette:控制色调# markers:控制散点的样式# vars,x_vars,y_vars:选择数据中的特定字段,以list形式传入# plot_kws:控制非对角线上的图的样式# diag_kws:用于控制对角线上的图的样式sns.pairplot(flights_long, hue='month')

再来看一下核密度估计图:

g = sns.PairGrid(flights_long)g.map_diag(sns.distplot)g.map_upper(plt.scatter)# 核密度估计图g.map_lower(sns.kdeplot,cbar=True)

 

相关性热力图

 

相关性热力图能够通过数值的大小以及颜色深浅的变化展示数据之间的相关性,来看一下:

# 相关性热力图# annot:在热力图中显示数字# cmap:调整色系sns.heatmap(flights_long.corr(), annot = True)

分层相关性热力图的画法如下:

# 分层相关性热力图sns.clustermap(flights_long.corr(), annot=True)

 

色谱表cmap的参数如下:

 

Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu, GnBu_r, Greens, Greens_r, Greys, Greys_r, OrRd, OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, Pastel2, Pastel2_r, PiYG, PiYG_r, PuBu, PuBuGn, PuBuGn_r, PuBu_r, PuOr, PuOr_r, PuRd, PuRd_r, Purples, Purples_r, RdBu, RdBu_r, RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r, RdYlGn, RdYlGn_r, Reds, Reds_r, Set1, Set1_r, Set2, Set2_r, Set3, Set3_r, Spectral, Spectral_r, Wistia, Wistia_r, YlGn, YlGnBu, YlGnBu_r, YlGn_r, YlOrBr, YlOrBr_r, YlOrRd, YlOrRd_r, afmhot, afmhot_r, autumn, autumn_r, binary, binary_r, bone, bone_r, brg, brg_r, bwr, bwr_r, cividis, cividis_r, cool, cool_r, coolwarm, coolwarm_r, copper, copper_r, cubehelix, cubehelix_r, flag, flag_r, gist_earth, gist_earth_r, gist_gray, gist_gray_r, gist_heat, gist_heat_r, gist_ncar, gist_ncar_r, gist_rainbow, gist_rainbow_r, gist_stern, gist_stern_r, gist_yarg, gist_yarg_r, gnuplot, gnuplot2, gnuplot2_r, gnuplot_r, gray, gray_r, hot, hot_r, hsv, hsv_r, icefire, icefire_r, inferno, inferno_r, jet, jet_r, magma, magma_r, mako, mako_r, nipy_spectral, nipy_spectral_r, ocean, ocean_r, pink, pink_r, plasma, plasma_r, prism, prism_r, rainbow, rainbow_r, rocket, rocket_r, seismic, seismic_r, spring, spring_r, summer, summer_r, tab10, tab10_r, tab20, tab20_r, tab20b, tab20b_r, tab20c, tab20c_r, terrain, terrain_r, twilight, twilight_r, twilight_shifted, twilight_shifted_r, viridis, viridis_r, vlag, vlag_r, winter, winter_r.

 

两两相关的属性图

 

两两相关的属性图可以单独的查看两个特征之间的关系,来看一下它的画法:

sns.jointplot(x='year', y='passengers', data=flights_long)

# kind用于调节类型sns.jointplot(x='year', y='passengers', data=flights_long, kind='hex')

sns.jointplot(x='year', y='passengers', data=flights_long, kind='reg')

sns.jointplot(x='year', y='passengers', data=flights_long, kind='kde')

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二哥不像程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值