计算机系统应用教程网站

网站首页 > 技术文章 正文

《一天一图学Python可视化》|第8天:更优雅地观察数据分布

btikc 2024-10-11 11:20:37 技术文章 5 ℃ 0 评论

我们知道,在描述单个变量时,我们可以使用箱线图、直方图、核密度估计图等将数据的分布给绘制出来。

想要学习更多可视化知识的话,可以到我的历史文章中查阅更多分享,比如《从零开始学Python可视化》系列、《7天学会Python最佳可视化工具Seaborn》系列、《一天一图学Python可视化》系列等。同时我还会分享许多关于爬虫、数据分析与挖掘、机器学习等的知识,欢迎感兴趣的同学关注我!

但是箱线图仅仅表现出了一些核心的集中趋势度量,不能完整地呈现分布形态;直方图和核密度估计则不能很好地应对多变量的情况(因为占地儿太大……)。那么我们如何应对宽表型数据呢?

注:宽表型数据是指将某个分类变量的多个水平拆分开来,每个水平对应一组数据,作为单独的一列。比如,我们有三个班级的数据成绩数据,每个班级作为一列,一共三列,这种数据就是宽表型数据。

如果看过我之前的《7天学会Python最佳可视化工具Seaborn》系列,那你可能已经想到了,我们可以使用小提琴图来绘制宽表型数据的分布形态。

来我们先看代码和图形效果:

import numpy as np
import seaborn as sns

sns.set()

# 创建数据集
rs = np.random.RandomState(0)
n, p = 40, 8
d = rs.normal(0, 2, (n, p))
d += np.log(np.arange(1, p + 1)) * -5 + 10

# 绘制小提琴图,并且将数据点置于其中
sns.violinplot(data=d, inner="points");

可以看到,小提琴图中,不同位置的胖瘦就代表了这个位置的数据集中情况。同时我们还可以将每个数据点在小提琴内部表现出来。

那么我们详细解释一下代码:

第一步,我们导入必要的库,并且使用seaborn的默认样式。

第二步,创建我们的测试数据集,它是一个符合正态分布的二维数组。然后我们再给每一列数据分别加上一个不同的值,使得他们区分开来,这样能凸显出小提琴图的对比作用。

第三步,绘制小提琴图,并且用inner="points"在小提琴内部打开散点开关。

你学会了吗?有任何问题,都可以在下方留言哦!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表