Python绘图之seaborn
Posted 程序员唐丁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python绘图之seaborn相关的知识,希望对你有一定的参考价值。
上一篇给大家简单介绍了散点图和线图的绘制函数,今天我们讲一下用分类数据绘图的方法。
下面以flights数据表为例进行绘制,flights表结构如下:
一、分类散点图
catplot()函数中数据的默认表示形式使用散点图。实际上,在seaborn中有两个不同的分类散点图。他们采用不同的方法来解决用散点图表示分类数据的问题,即属于一个类别的所有点都将沿着分类变量对应的轴落在同一位置。
stripplot()是catplot()中的默认“kind”,它使用的方法是用少量的随机“抖动”来调整分类轴上点的位置:jitter参数控制抖动的大小或完全禁用抖动。
第二种方法使用防止重叠的算法沿分类轴调整点。它可以更好地表示观测值的分布,尽管它只适用于相对较小的数据集。这种绘图有时称为“蜂群”,由swarmlot()在seaborn中绘制,通过在catplot()中设置kind=“swarm”激活。
与关系图类似,可以通过使用色调语义为分类图添加另一个维度(分类图目前不支持大小或样式语义)。每个不同的分类绘图函数处理色调语义的方式都不同。对于散点图,只需更改点的颜色。
1、stripplot()绘图
import seaborn as sns
%matplotlib inline
flights = sns.load_dataset("flights")
sns.catplot(x='year',y='passengers',data=flights)
减少或禁止抖动
import seaborn as sns
%matplotlib inline
flights = sns.load_dataset("flights")
sns.catplot(x="year", y="passengers", jitter=False, data=flights);
2、swarmlot()绘图
import seaborn as sns
%matplotlib inline
flights = sns.load_dataset("flights")
sns.catplot(x="year", y="passengers", hue="month", kind="swarm", data=flights);
二、箱形图
第一个是熟悉的boxplot()。这种图显示了分布的三个四分位值以及极值。“胡须”延伸到位于上下四分位数1.5 IQR范围内的点,然后独立显示超出此范围的观察值。这意味着箱线图中的每个值对应于数据中的实际观测值。
import seaborn as sns
%matplotlib inline
flights = sns.load_dataset("flights")
sns.catplot(x="year", y="passengers", kind="box", data=flights);
由于flights数据表的分类效果不明显,因此下面的图根据tips表的smoker分类:
import seaborn as sns
%matplotlib inline
tips = sns.load_dataset("tips")
sns.catplot(x="day", y="total_bill", hue="smoker", kind="box", data=tips);
三、小提琴图
violinplot()绘制方法将箱线图与分布教程中描述的内核密度估计过程结合起来。
import seaborn as sns
%matplotlib inline
tips = sns.load_dataset("tips")
sns.catplot(x="total_bill", y="day", hue="time", kind="violin", data=tips);
就先介绍这么多,更多内容下节见~~
以上是关于Python绘图之seaborn的主要内容,如果未能解决你的问题,请参考以下文章