集群图
在这节课,你见到了描绘数字变量和分类变量之间关系的很多方式。小提琴图将分布描绘为密度曲线,箱线图采用的是摘要形式,将数量绘制为须线。这些图形的另一种替代方式是集群图。和散点图类似,每个数据点根据在两个变量上的值确定在图形中的位置。点放置在尽量接近真实值的位置,不允许有任何重叠现象,而不是像在正常散点图中那样随机抖动数据点。可以使用 seaborn 中的 swarmplot
函数创建集群图,调用方式和 violinplot
和 boxplot
差不多。
plt.figure(figsize = [12, 5])
base_color = sb.color_palette()[0]
# left plot: violin plot
plt.subplot(1, 3, 1)
ax1 = sb.violinplot(data = df, x = 'cat_var', y = 'num_var', color = base_color)
# center plot: box plot
plt.subplot(1, 3, 2)
sb.boxplot(data = df, x = 'cat_var', y = 'num_var', color = base_color)
plt.ylim(ax1.get_ylim()) # set y-axis limits to be same as left plot
# right plot: swarm plot
plt.subplot(1, 3, 3)
sb.swarmplot(data = df, x = 'cat_var', y = 'num_var', color = base_color)
plt.ylim(ax1.get_ylim()) # set y-axis limits to be same as left plot
image.png
并排地查看这些图形后,可以看出集群图的优势与不足。和小提琴图和箱线图不同的是,每个点都绘制出来,因此可以比较每个群组在同一图形中的频率。虽然由于位置抖动而出现变形,但是我们也可以确切地了解每个点实际位于何处,消除了小提琴图中可能出现的长尾现象。
但是,只有数据量很少或适中时,才适合使用集群图。如果有太多的数据点,那么重叠限制将导致变形严重,或者需要很多空间才能很好地绘制数据。此外,数据点太多实际上会存在干扰,使我们更难发现图形中的关键规律。请根据在单变量可视化部分得出的结论判断哪个双变量可视化图形最合适,或者直接尝试不同的图形,看看哪个呈现的信息最多。
网友评论