小提琴图
我们可以通过几种方式绘制一个定量变量和另一个定量变量之间的关系,并表示不同抽象级别的数据。小提琴图是较低级别的抽象。对于分类变量的每个级别,都会绘制数字变量的值分布情况。分布情况绘制为核密度估计,有点像平滑的直方图。上节课结尾的补充内容详细讲解了核密度估计。
Seaborn 的 violinplot
函数可以用来创建将小提琴图和箱线图相结合的图形,我们将在下个页面讨论箱线图。
sb.violinplot(data = df, x = 'cat_var', y = 'num_var')
在此图中可以看出,数字数据在每个分类级别都具有不同的形状:α 组呈双峰,β 组的变化相对更明显,γ 组和 δ 组分别呈负偏态和正偏态。还可以看出,每个级别都以不同的颜色呈现,就像上节课的普通 countplot
一样。如果没必要区分颜色,我们可以使用 "color" 参数使所有曲线的颜色都一样。
在每个曲线内,有一个黑色形状,其中包含一个白点。这就是上面提到的箱线图的迷你版。下个页面将详细讨论箱线图。如果你想删除箱线图,可以在 violinplot
调用中设置 inner = None
参数,使最终的图形看起来更简单。
base_color = sb.color_palette()[0]
sb.violinplot(data = df, x = 'cat_var', y = 'num_var', color = base_color,
inner = None)
其他版本
就像条形图可以呈现为横条一样,小提琴图也可以水平呈现。Seaborn 很机智,可以根据是 "x" 还是 "y" 接受的分类变量来推断按照哪个屏幕方向绘制图形。但是如果两个变量都是数字(例如一个是离散值),则可以使用“orient”参数指定图形方向。
base_color = sb.color_palette()[0]
sb.violinplot(data = df, x = 'num_var', y = 'cat_var', color = base_color,
inner = None)