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的主要内容,如果未能解决你的问题,请参考以下文章

使用 seaborn 绘图时,如何为色调参数指定多个变量?

seaborn——绘图工具

Python绘图之seaborn

Python绘图之seaborn

分类属性绘图(seaborn的catplot函数)

Python绘图之seaborn