Python绘图之seaborn

Posted 程序员唐丁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python绘图之seaborn相关的知识,希望对你有一定的参考价值。

上一篇给大家简单介绍了散点图和线图的绘制函数,今天我们讲一下用分类数据绘图的方法。

下面以flights数据表为例进行绘制,flights表结构如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3WyRPuHi-1624006612814)(/Users/dingcong/程序员唐丁/唐丁博客/配图/flights.png)]

一、分类散点图

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)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2WUvgYPR-1624006612821)(/Users/dingcong/程序员唐丁/唐丁博客/配图/分类散点图1.png)]

减少或禁止抖动

import seaborn as sns

%matplotlib inline

flights = sns.load_dataset("flights")

sns.catplot(x="year", y="passengers", jitter=False, data=flights);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tcomPzi5-1624006612825)(/Users/dingcong/程序员唐丁/唐丁博客/配图/分类散点图2.png)]

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);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O6Lhl4uo-1624006612835)(/Users/dingcong/程序员唐丁/唐丁博客/配图/分类散点图3.png)]

二、箱形图

第一个是熟悉的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);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pTd8jsCo-1624006612837)(/Users/dingcong/程序员唐丁/唐丁博客/配图/箱形图1.png)]

由于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);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o347o0YR-1624006612840)(/Users/dingcong/程序员唐丁/唐丁博客/配图/箱形图2.png)]

三、小提琴图

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);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LcZQAexa-1624006612841)(/Users/dingcong/程序员唐丁/唐丁博客/配图/小提琴图1.png)]

就先介绍这么多,更多内容下节见~~
在这里插入图片描述

以上是关于Python绘图之seaborn的主要内容,如果未能解决你的问题,请参考以下文章

Python绘图之seaborn

Python绘图之seaborn

Python数据分析-可视化“大佬”之Seaborn

在 Seaborn 中绘图时 Python 代码出错

Seaborn 绘图代码

如何使用 Python 在 Seaborn 中保存绘图 [重复]