seaborn系列 (4) | 分类图catplot()

本篇是《Seaborn系列》文章的第4篇-分类图。

分类图

分类图catplot()
解析:
catplot() 分类图(它是下面8种图的接口,下面八种图表均可通过指定kind参数来绘制)
1.stripplot() 分类散点图
2.swarmplot() 能够显示分布密度的分类散点图
3.boxplot() 箱图、盒形图
4.violinplot() 小提琴图
5.boxenplot() 增强箱图
6.pointplot() 点图
7.barplot() 条形图
8.countplot() 计数图

函数原型

seaborn.catplot(x=None, y=None, hue=None,
                data=None, row=None, col=None,
                col_wrap=None, estimator=<function mean>, ci=95, 
                n_boot=1000, units=None, order=None,
                hue_order=None, row_order=None, col_order=None, 
                kind='strip', height=5, aspect=1, orient=None, 
                color=None, palette=None, legend=True,
                legend_out=True, sharex=True, sharey=True, 
                margin_titles=False, facet_kws=None, **kwargs)

参数解读

在这里插入图片描述

必须的参数data 其他参数均为可选;

data:是DataFrame类型的;

x,y为数据中变量的名称(如上表,date,name,age,sex为数据字段变量名);

row,col:数据中变量的名称
作用:设置分类变量将决定网格的分面。

kind:字符串
要绘制的绘图类型
(对应于分类绘图功能的名称:"count"-统计图, "point"-点, 
"bar"-条形, "strip"-条形, "swarm"-群形, "box"-框形, 
"violin"-小提琴形, or"boxen"-盒形.)

col_wrap:int类型数值
作用:让每行显示指定数量的图,如果超过该数量,则多行显示。

orient:方向:v或者h
作用:设置图的绘制方向(垂直或水平)
如何选择:一般是根据输入变量的数据类型(dtype)推断出来。

案例教程

案例代码已上传:Github地址

import seaborn as sns
sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
exercise[:5]

在这里插入图片描述


import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks")
# 获取数据
exercise = sns.load_dataset("exercise")
"""
案例1:基本分类图
"""
sns.catplot(x="time", y="pulse", hue="kind", data=exercise)
plt.show()

在这里插入图片描述


import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks")
# 获取数据
exercise = sns.load_dataset("exercise")
"""
案例2:通过设置kind来指定绘制的图类型

kind="violin" 则表示绘制小提琴图
"""
sns.catplot(x="time", y="pulse", hue="kind",data=exercise, kind="violin")
plt.show()

在这里插入图片描述

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks")
# 获取数据
exercise = sns.load_dataset("exercise")
"""
案例3:根据col分类,以列布局绘制多列图
设置col,根据指定的col的变量名,以列的形式显示(eg.col='diet',则在列的方向上显示,显示图的数量为diet列中对值去重后的数量)
"""
sns.catplot(x="time", y="pulse", hue="kind",col="diet", data=exercise)
plt.show()

在这里插入图片描述


import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks")
# 获取数据
exercise = sns.load_dataset("exercise")
"""
案例4:绘图时,设置图(facets)的高度和宽度比
"""
sns.catplot(x="time", y="pulse", hue="kind",col="diet", data=exercise,height=4, aspect=.8)
plt.show()

在这里插入图片描述


import seaborn as sns
sns.set(style="ticks")
# 使用 titanic数据集
titanic = sns.load_dataset("titanic")
# 获取数据
#去掉deck这一列中值为空的数据
data=titanic[titanic.deck.notnull()]
data[:10]

在这里插入图片描述

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks")
# 获取数据
#去掉deck这一列中值为空的数据
data=titanic[titanic.deck.notnull()]
"""
案例5:利用catplot()绘制柱状图 kind="count"
设置col_wrap一个数值,让图每行只显示数量为该数值的列,多余的另起一行显示
"""
sns.catplot(x="alive", col="deck", col_wrap=4,data=data,kind="count", height=2.5, aspect=.8)
plt.show()

在这里插入图片描述

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks")
# 获取数据
#去掉deck这一列中值为空的数据
data=titanic[titanic.deck.notnull()]
# 水平绘图,并将其他关键字参数传递给绘图函数
"""
案例6:利用catplot()绘制小提琴图 kind="violin"

orient设置图的方向
"""
sns.catplot(x="age", y="embark_town",hue="sex", row="class",
            data=data,
            orient="h", height=2, aspect=3, palette="Set3",
            kind="violin",dodge=True,  cut=0, bw=.2)
plt.show()

在这里插入图片描述

案例地址

上述案例代码已上传:Github地址

Github地址https://github.com/Vambooo/SeabornCN
更多技术干货在公众号:数据分析与可视化学研社

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

脑机接口社区

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

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

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

打赏作者

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

抵扣说明:

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

余额充值