目录
- 0. 概述
- 1. 分类散点图
-
- 1.1 catplot() 默认 kind='strip'
- 1.2 catplot(kind='swarm')
- 2. 类中观测值分布
-
- 2.1 catplot(kind='box')
- 2.2 catplot(kind="boxen")
- 2.3 catplot(kind="violin")
- 3. 类中统计评估
-
- 3.1 catplot(kind="bar")
- 3.2 catplot(kind="count")
- 可视化“宽型”数据
- 使用分面图进行多变量关系分析
0. 概述
可视化分类数据
上一篇相关型的绘图主要进行的是的大部分变量都是数值型变量的数据可视化。
但是对于大多数变量都是 分类(离散型) 的数据这种情况,我们使用 catplot() 函数。(与操作数值型数据的 relplot( ) 相似)
主要有以下几种:
注:Seaborn 中的绘图方法有类似 barplot()、boxplot() 这种简单的函数,它们绘制在特定的matplotlib轴上,这种函数被是" axes-level function ";
相对地,Seaborn 还有一类高级的函数,比如之前见到的 relplot() 以及本篇中的 catplot() ,它能将上面提到的“低级函数与 FacetGrid 相结合,构造出一种非常简明的快速绘制函数,这种函数是 “ figure-level function ”。
1. 分类散点图
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks", color_codes=True)
tips = sns.load_dataset("tips")
1.1 catplot() 默认 kind=‘strip’
# catplot() 内置kind:stripplot()
sns.catplot(x="day", y="total_bill", data=tips);
- 参数 jitter 控制抖动或完全禁用它的大小
# 参数 jitter 控制抖动或完全禁用它的大小sns.catplot(x="day", y="total_bill", jitter=False, data=tips);
1.2 catplot(kind=‘swarm’)
# 另一个 kind:swarmplot(),不过仅仅在小数据集上好用
sns.catplot(x="day", y="total_bill", kind="swarm", data=tips);
- 参数 hue
与关系型绘图一样,也可以通过参数 hue 来增加维度,不过目前还不支持 size 和 style
sns.catplot(x=“day”, y=“total_bill”, hue=“sex”, kind=“swarm”, data=tips);
sns.catplot(x="day", y="total_bill", hue="sex", kind="swarm", data=tips);
2. 类中观测值分布
2.1 catplot(kind=‘box’)
即Boxplots 箱线图。
从上到下依次:离群点、上界、上四分位数、均值、中位数、下四分位数、下界、离群点
# 参数 kind="box"
sns.catplot(x="day", y="total_bill", kind="box", data=tips);
- 参数 hue
# 添加参数 hue(增加一个维度)
sns.catplot(x="day", y="total_bill", hue="smoker", kind="box", data=tips);
2.2 catplot(kind=“boxen”)
适合大数据
# 参数 kind="boxen" 适合大数据
diamonds = sns.load_dataset("diamonds")
sns.catplot(x="color", y="price", kind="boxen",data=diamonds.sort_values("color"));
2.3 catplot(kind=“violin”)
与 KDE 结合
# 参数 kind=“violin” :它将箱线图和核密度估计(kde: kernel density estimation)结合起来
sns.catplot(x="total_bill", y="day", hue="time",kind="violin", data=tips);
3. 类中统计评估
3.1 catplot(kind=“bar”)
titanic = sns.load_dataset("titanic")
sns.catplot(x="sex", y="survived", hue="class", kind="bar", data=titanic);
-
3.2 catplot(kind=“count”)
# 参数 kind="count":只可视化每个分类下观测值/样本的数量而不是计算统计量(kind="count")
sns.catplot(x="deck", kind="count", palette="ch:.25", data=titanic);
后面暂略
可视化“宽型”数据
使用分面图进行多变量关系分析
参考:
Seaborn(sns)官方文档学习笔记(第五章 分类数据的绘制)