簇状柱形图
为了描绘两个分类变量之间的关系,我们可以将在上节课见到的单变量条形图扩展为簇状柱形图。和标准条形图一样,我们依然需要描绘每组的数据点计数,但是每组现在是两个变量的标签组合。因此我们需要按照某种顺序整理长条,使图形容易解释。在簇状柱形图中,我们根据第一个变量的级别将长条分成一簇,然后在每个簇内根据第二个变量对长条进行排序。使用 seaborn 的 countplot 函数通过一个示例来讲解最容易理解。要使图形从单变量图形变成双变量图形,我们用 "hue" 参数添加第二个变量:
sb.countplot(data = df, x = 'cat_var1', hue = 'cat_var2')
第一个分类变量用很宽泛的 x 轴表示(对照组、实验 A、实验 B)。在每组绘制三个长条,第二个分类变量的每个级别对应一个长条(低、中、高)。用颜色区分每个级别,并在图形的右上角用图例记录。图形告诉我们三个 "cat_var1" 群组在 "cat_var2" 级别的频率分布很平衡,虽然 "实验 A" 组与另外两组相比,中间点(橙色中心长条)的计数稍微低些。
但是,该示例中的图例位置有点干扰性。我们可以使用 Axes 方法设置 countplot 返回的 Axes 对象的 legend 属性。
ax = sb.countplot(data = df, x = 'cat_var1', hue = 'cat_var2')