Matplotlib和Seaborn之集群图

集群图

在这节课,你见到了描绘数字变量和分类变量之间关系的很多方式。小提琴图将分布描绘为密度曲线,箱线图采用的是摘要形式,将数量绘制为须线。这些图形的另一种替代方式是集群图。和散点图类似,每个数据点根据在两个变量上的值确定在图形中的位置。点放置在尽量接近真实值的位置,不允许有任何重叠现象,而不是像在正常散点图中那样随机抖动数据点。可以使用 seaborn 中的 swarmplot 函数创建集群图,调用方式和 violinplotboxplot 差不多。

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

并排地查看这些图形后,可以看出集群图的优势与不足。和小提琴图和箱线图不同的是,每个点都绘制出来,因此可以比较每个群组在同一图形中的频率。虽然由于位置抖动而出现变形,但是我们也可以确切地了解每个点实际位于何处,消除了小提琴图中可能出现的长尾现象。

但是,只有数据量很少或适中时,才适合使用集群图。如果有太多的数据点,那么重叠限制将导致变形严重,或者需要很多空间才能很好地绘制数据。此外,数据点太多实际上会存在干扰,使我们更难发现图形中的关键规律。请根据在单变量可视化部分得出的结论判断哪个双变量可视化图形最合适,或者直接尝试不同的图形,看看哪个呈现的信息最多。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容