seaborn 笔记: 绘制分类数据

Posted UQI-LIUWJ

tags:

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

0 导入库

import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="ticks", color_codes=True)

1 scatterplot

        catplot() 中数据的默认表示。

        数据如下:

tips = sns.load_dataset("tips")
tips

1.1 默认情况

sns.catplot(x="day", y="total_bill", data=tips)

 1.2 控制抖动

jitter 参数控制抖动的大小或完全禁用它:

sns.catplot(x="day", y="total_bill", data=tips,
           jitter=0.7)

sns.catplot(x="day", y="total_bill", data=tips,
           jitter=False)

 1.3 swamplot

        第二种防止重叠的方法使用算法沿分类轴调整点。 它可以更好地表示观察的分布,尽管它只适用于相对较小的数据集。

        这种plot被称为“beeswarm”,在 seaborn 中由 swarmplot() 绘制,或者通过在 catplot() 中设置 kind="swarm" 来绘制:

sns.catplot(x="day", y="total_bill", data=tips,
           kind='swarm')

sns.swarmplot(x="day", y="total_bill", data=tips)

 

 1.4 添加一个维度

(catplot只支持hue,不支持size和style)

sns.catplot(x="day", y="total_bill", data=tips,kind='swarm',
               hue='sex')

 1.5 横置图像

交换变量的赋值

sns.catplot(x="total_bill", y="day", data=tips,kind='swarm',
               hue='sex')

1.6 改变几个catalog的顺序

sns.catplot(x="day", y="total_bill", data=tips,kind='swarm',hue='sex',
           order=['Thur','Sun','Fri','Sat'])

 

 

 2 箱式图

 2.1 基本绘图

sns.catplot(x="total_bill", y="day", data=tips,
            kind='box')

2.2. 用hue进行分类

sns.catplot(x="total_bill", y="day", data=tips,kind='box',
           hue='sex')

3 Boxen

和Box很像,但是提供了更多的信息

diamonds = sns.load_dataset("diamonds")
sns.catplot(x="color", y="price", kind="boxen",
            data=diamonds.sort_values("color"))

 4 violinplot

sns.catplot(x="total_bill", y="day",data=tips,
            kind="violin")

 4.1 hue

sns.catplot(x="total_bill", y="day",kind="violin", data=tips,
           hue='sex')

4.1.1 hue+split

如果hue是二分类的话,可以加split=True,来更好地利用空间 

sns.catplot(x="total_bill", y="day",kind="violin", data=tips,
           hue='sex',split=True)

 5 双图叠加

5.1 swam+violin

g=sns.catplot(x="total_bill", y="day",kind="violin", data=tips,split=True)
sns.swarmplot(x="total_bill", y="day", color='k',size=3,data=tips,
              ax=g.ax)

6 柱状图

6.0 数据集

titanic = sns.load_dataset("titanic")
titanic

6.1 基础柱状图 

当每个类别中有多个观察值时,将计算估计值周围的置信区间(柱状图的值是平均值)

sns.catplot(x="sex", y="survived",  kind="bar", data=titanic)

6.2 hue进行分类

sns.catplot(x="sex", y="survived", kind="bar", data=titanic, 
            hue="class")

 

 6.3 不计算平均值,计算数量

sns.catplot(x="sex", kind="count", data=titanic, 
            hue="class")

 

sns.countplot(x="sex", data=titanic, hue="class")

7 pointplot

和柱状图想要说明的内容是类似的,不过这里用点和线表示了均值和置信区间

sns.catplot(x="sex", y="survived", hue="class", data=titanic, 
            kind="point")

7.1 markers

设置不同hue中点的形状

sns.catplot(x="sex", y="survived", hue="class", data=titanic, kind="point",
            markers=['*','+','o'])

 

 7.2 linestyles

sns.catplot(x="sex", y="survived", hue="class", data=titanic, kind="point",
            linestyles=['-','--',':'])

 

以上是关于seaborn 笔记: 绘制分类数据的主要内容,如果未能解决你的问题,请参考以下文章

seaborn笔记:绘制点的分布

seaborn库中柱状图绘制详解

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

Python绘图之seaborn

Python绘图之seaborn

Seaborn实战案例 | 绘制分类条形统计图