不要绘制3D图形
以下部分是基于《Fundamentals of Data Visualization》学习笔记,要是有兴趣的话,可以直接看原版书籍:https://serialmentor.com/dataviz/
3D情节非常受欢迎,但是它们也几乎总是使用不当。在绘图过程中,很少看到一个3D绘图不能通过将其转换成普通的2D图形而得到改进的。在这一章中,我们将解释为什么3D绘图存在问题,为什么它们通常是不需要的,以及在哪些有限的情况下3D绘图可能是合适的。
1. 避免不必要的3D
许多可视化软件都能让你将图中的图形元素转换成三维对象来美化你的图形。最常见的情况是,我们看到饼图变成了在空间中旋转的圆盘,条形图变成了列,线图变成了条。值得注意的是,在所有这些情况下,第三维度都没有传递任何实际数据。3D只是用来装饰图形的。相比较而言,这种3D的使用是不必要的。这是非常糟糕的,应该从数据科学家的视觉词汇中删除。
3D图形的主要问题在于,我们将3D对象投射到二维的显示器上的时候,会扭曲数据。由于显示的问题,人类的视觉系统试图矫正这种扭曲。但是这种修正总是片面的。例如我们以一个简单的饼图为例。它有两个分组,一个表示25%的数据,另外一个则表示75%的数据。我们将这个饼图在三维空间当中旋转。当我们改变这个看这个饼图的角度的时候,这个图形的大小也似乎在发生改变,特别是25%这个部分。
其他类型的3D图也有类似的问题。例如👇的3D条形图。这个图显示了泰坦尼克号当中不同等级船舱当中的男女占比。由于这些竖条是相较于坐标轴的排列方式。所以他们看起来都比实际短一些。例如总共有322名乘客的头等舱。但是,我们会发现这个图形的头等舱的柱子比300少。
产生这种错觉的原因是,表示数据的列与绘制灰色水平线的两个背面之间存在一定距离。通过比较3D效果和2D的图,就可以发现在3D图上的任何一个条形看起来都比2D上面的要高。
3. 避免使用3D位置标度
对于3D图形而言,还可以使用3D维度的坐标轴(X, Y, Z)。但是如果使用这三个维度的坐标轴的话,结果就更加让人疑惑了。例如,👇32辆汽车的燃油效率与排量和功率的3D散点图。在这里,我们绘制沿x轴的位移,沿y轴的功率以及沿z轴的燃油效率,并用点表示每个汽车(图26.3)。即使从四个不同的角度显示了这种3D可视化效果,也很难想象这些点在空间中的分布情况。而且不同的角度显示的结果都感觉不是一个数据集呈现的结果。
这种3D可视化的基本问题是,在可视化的过程中,它们需要两次单独的,连续的数据转换。第一个转换将数据从数据映射到3D可视化空间。第二个将数据从3D可视化空间映射到最终图形的2D空间。因为2D显示器上的每个点都对应3D可视化空间中的点线。因此,我们无法唯一确定3D空间中任何特定数据点的位置。
对于图形而言,与其绘制3个维度的图形,不如在2D图形当中添加一个新的标度(例如,颜色,大小,形状等等)。例如👇就是一次性绘制了五个变量的2D图形。
在这里,我想展示两种替代方法来精确绘制图26.3中使用的变量。首先,如果我们主要关注燃油效率作为响应变量(放到Y轴上),则可以绘制两次,一次针对排量,一次针对功率。
其次,如果我们对排量和功率之间的关系更感兴趣,并将燃油效率作为关注的次要变量,则可以绘制功率与排量的关系图,并将燃油效率映射到点的大小上。
3. 绘制合适的3D图形
但是,有时使用3D位置比例尺进行可视化是合适的。首先,如果可视化是交互式的并且可以由查看者旋转,或者在可视化的VR或增强现实环境中可以从多个角度进行观察。其次,即使可视化不是交互式的,也可以显示它缓慢旋转,而不是从一个角度显示为静态图像。
最后,当我们想要显示实际的3D对象和/或映射到它们的数据时,使用3D可视化是有意义的。例如,显示山区岛屿的地形地貌的地图。
同样,如果我们想可视化映射到其结构的蛋白质的进化序列保守性,则将结构显示为3D对象是有意义的。