《数据可视化基础》第八章:一次性可视化很多分布

2020-07-20 15:35:16 浏览数 (1)

以下部分是基于《Fundamentals of Data Visualization》学习笔记,要是有兴趣的话,可以直接看原版书籍:https://serialmentor.com/dataviz/

在很多情况下,我们需要可视化很多数据的分布。例如温度数据。我们可能希望可视化不同月份之间温度的变化,同时还要显示每个月内观察到的温度分布。这种情况要求一次显示十二个温度分布,每个月一个。在这种情况下,可行的方法包括箱线图(boxplot),小提琴图(violin plots)和山脊图(ridgeline plots)

可视化沿垂直轴的分布

一次性可视化多个分布的最简单的方法是将数据的均值或者中位值显示为点,同时通过误差线来显示点上下的波动。例如下图就是这样的可视化结果。

?的可视化存在很多问题。首先,通过仅用一个点和两个误差线表示每个分布,我们丢失了很多有关数据的信息。其次,没有一个明确的图例说明图中的点以及误差线代表什么东西。其次对于误差线只能反应一部分数据的分布,并不能代表所有数据的分布。

基于上述的图形的缺点,我们可以使用箱式图来解决上面的所有的缺点。箱图将数据划分为四分位数并以标准化方式将其可视化。对于箱式图的解释可以看下面的这个图。这个图的左边是一个数据的散点图右边是这个数据匹配的箱式图。中间的箱子是代表一半的数据分布情况。箱子中间的线是数据的中位值的位置。顶部和底部线条要么延伸到数据的最大值和最小值,要么延伸到框高的1.5倍以内的最大值或最小值,取其较短者为准。对于超过框高1.5倍的使用点来进行表示,表示离群值。对于?的这个图,最大值超过了框高的1.5倍,标记为了离群值。对于最小值在框高1.5倍以内。所以外部线条就延伸到最小值即可。

这样通过箱式图如果要绘制上述数据的结果的话,那就是?这个样子的。

通过箱式图的可视化,我们可以了解到数据的结果的分布是什么样子的。但是对于箱式图而言,我们通过箱式图能看到数据相对的位置比如说数据的中位值在哪里。但是并不能很好的显示数据的整体分布。基于这个目的,就又有了小提琴图。小提琴图可以很好的绘制出数据的分布密度。图形当中越宽的地方代表数据的密度越大。越窄的地方代表数据的密度越小。

因此,如果利用小提琴图绘制上面的数据的话,那么就变成这个样子了。

对于小提琴图而言,虽然其可以显示数据的分布密度。但是这个图和之前介绍的密度图一样,都有一个缺点是,会在没有数据的地方绘制曲线。这个我们可以通过绘制具体的数据点来规避这个问题。但是对于可视化而言,如果只是单纯的绘制数据点的话,就会变成一条线上的点了,这个基本看不清数据分布,所以为了更好的可视化点,我们可以把数据的点往左右随机抖动一下,这样就有了抖动的点图(jitter plot)。

以上是三种水平可视化数据分布的图形推荐。其实对于三种图形都可以来组合使用来弥补各自的缺点的。这样我们可以通过箱式图了解数据的位置部分是什么样子的,通过小提琴图了解数据的密度分布,同样的利用抖动的点图来规避小提琴图的图形延伸的问题。

可视化延水平轴的分布

在之前的章节中,我们使用直方图和密度图可视化了沿水平轴的分布,在这里扩展对于这类图形的结果,就得到了山脊图(ridgeline plots)。如果想显示一段时间内的分布趋势,则脊线图通常会表现得特别好。

山脊图本质上就是多个密度图放到一起的结果。它类似于小提琴图。但是在可视化方面使人们能够更好的理解数据。例如,下图两个在11月的35华氏度和50华氏度下峰就比上面的小提琴图容易看出来。

另外,脊线图可缩放到非常大量的分布。例如,图9.11显示了从1913年到2005年的电影长度分布。通过图形可以看出,在1920年代,电影的长度有很多不同,但是自1960年以来,电影的长度已标准化为大约90分钟。

如果我们想随时间比较两个趋势,则脊线图也可以很好的选择。

0 人点赞