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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员唐丁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值