首先,导入我们的工具包,并执行魔法指令:
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
sns.set_style("whitegrid")
连载的上一篇文章在介绍多变量分析分析绘图时,我们介绍了绘制直方图、散点图、盒图、小提琴图等格式各样的 Seaborn 模块级别的方法,如:stripplot
swarmplot
boxplot
violinplot
barplot
pointplot
。
本篇文章,我们继续之前的顾客小费打赏分析,介绍一个更通用的 Seaborn 函数 catplot
。
首先,加载数据集 tips
:
tips = sns.load_dataset("tips")
tips.head()
下面,按照顾客是否吸烟使用 catplot
绘制出不同日期顾客的消费打赏情况:
sns.catplot(x="day", y="total_bill", hue="smoker", data=tips)
默认绘制的结果就是 strip 点图了:
指定 kind="bar"
,绘制出的就是柱形图了。
sns.catplot(x="day", y="total_bill", hue="smoker", data=tips, kind="bar")
绘制结果:
同样的,指定 hue="smoker"
可以将结果绘制成 swarm 分散点。
sns.catplot(x="day", y="total_bill", hue="smoker",
col="sex", data=tips, kind="swarm")
这里,我们还指定了一个新的特征变量:col="sex"
,将会按照性别的不同,在 1 行子图中分别展示:
此外,还可以指定 height
和 width
调整图形的比例:
sns.catplot(x="time", y="total_bill", hue="smoker",
col="sex", data=tips, kind="violin", split=True,
height=4, width=0.5)
下面是小提琴图的展示效果:
kind 作为可选参数:
-
strip
散点 -
bar
柱形图, -
count
频次 -
box
箱体 -
violin
提琴 -
point
折线 -
swarm
分散点