树状图是一种用于大型、层次化数据集的数据可视化技术。它们在数据中捕获两种类型的信息:(1)单个数据点的值;(2)层次结构。
定义:树形图是层次化数据的可视化。它们由一系列嵌套的矩形组成,矩形的大小与对应的数据值成正比。一个大的矩形表示数据树的一个分支,它被细分为更小的矩形,这些小矩形表示该分支内每个节点的大小。



树地图的主要用途
树形图通常存在于数据中指示板。设计人员通常选择它们来在密集的仪表板上增加视觉多样性。然而,树状图是一种复杂的可视化方法,对快速理解(这是仪表板上显示的任何信息的主要需求)存在许多障碍。
树状图通常用于销售数据,因为它们捕获了数据类别的相对大小,允许快速感知每个类别中占很大比重的商品。颜色可以辨别出哪些物品在同一类别中表现不佳(或优异)。这就是为什么FinViz的市场地图是树状地图的一个经久不衰的例子:它允许用户识别那些比他们的行业同行做得更好的公司,即使他们的整体股票价值可能很小。
当你的层次数据有2个主要维度,你想要可视化时,树形图工作得很好:
- 一个积极的量化值,它将表示为矩形的面积(因为面积不能是负的,所以不能使用treemaps来可视化变量,如增益/损失,它可以有正的和负的值)。
- 一个分类的或第二数量的值,它将表示为单个矩形的颜色。如果用颜色来表达一个数量值,强烈建议只使用一种颜色(如果所有的数字都是正数)或两种颜色(一个是负数,一个是正数),并通过改变颜色的强度来表达精确的值。由于人类不认为颜色有内在的顺序,我们强烈建议你不要使用多种颜色来代表一个数字范围。

如果颜色表示一个分类变量,那么可以为不同的可能值使用不同的颜色,因为用户不需要将特定的颜色解释为比另一种颜色“高”或“低”。然而,就像在数据可视化中使用颜色一样,强烈建议限制颜色的数量!
无论您如何在树图中使用颜色,请创建以下内容可访问性色盲用户的住宿:
- 避免在同一个树形图中同时使用红色和绿色(特别是需要快速区分的值)。
- 使用对色盲的人安全的调色板。
- 使用可以模拟色盲用户体验的工具来测试您的设计
- 对通过颜色捕获的数据方面使用次要信号(例如矩形内的文本或出现在悬停状态下的文本)

下面是一些创建可用树地图的更多指导原则:
- 视觉上明显的边界围绕高级类别帮助用户识别顶级分组。
- 高对比度的文本确保人们可以读到树形图矩形内的标签。
- 视觉上独特的选定状态,当用户悬停(或点击)矩形时到达,帮助用户确认他们正在查看正确的数据点。
- 关于所选矩形的额外细节(出现在叠加中),比如变量的名称、值允许用户钻取数据。

treemap的缺点
比较是困难的
人类的大脑能够处理某些视觉信息前注意:可以快速准确地掌握长度等属性,几乎不需要认知就可以比较这些属性的值。不幸的是,区域不是这些预先注意属性之一。树形图依赖于区域(可能还有颜色)来编码变量的值,因此,尽管树形图可以在大型数据集中传达整体关系,它们不适合进行精确比较的任务。


对于没有层次结构的数据是无效的
如果数据没有层次结构,就不应该使用树状图:在这些情况下,它们在功能上等同于饼图——只是显示了部分到整体的关系。(饼状图也不是很好的可视化——就像树状图一样,它们基于面积和角度,以及不预先注意的属性。它们应该仅用于表示一个或两个项比其他项大得多,而不用于比较饼图分区的相对大小。)
视觉上压倒性的
树状图通常用于可视化具有数百或数千项的大型数据集。这样大量的信息会让用户在视觉上感到不知所措——树状地图变成了小矩形的海洋,很多小到无法承载文本标签。此外,在复杂的树状图中,整体的层次结构很容易变得模糊不清。解决方案是缓冲treemap它利用纹理让每个矩形看起来像垫子一样在中间“凸起”,边缘逐渐变细。这种视觉效果利用了人类将这种类型的阴影解释为一个凸起的表面的倾向,使它更快地识别不同的矩形。

不适合平衡树
对于条目大小相近的数据集(例如,平衡树)。在这些情况下,treemap的主要目的(快速识别给定类别中的最大项)变得非常困难。最后,用于创建树状图的标准算法尝试使矩形尽可能是方形的,以便使大小比较稍微容易一点,也不容易出错。然而,在交互式可视化中,随着时间的推移会显示变化,这种算法的一个缺陷是,矩形可能会随着它们的大小变化而移动。因此,随着时间的推移,跟踪一个特定的项目变得非常困难。
替代treemap
在很多情况下,树状图可以用条形图(用于包含一个定量变量和一个分类变量的数据)或散点图(用于包含两个定量变量的数据)来替代。
然而,这个过程需要您理解用户的前任务;对于那些试图识别出高销量和高利润率的产品,以便更积极地宣传它们的高管来说,2D散点图比树图更好。但如果用户主要关心的是整体销售,一个排序柱状图是比树状图更好的选择。(排序通常不被重视,但它是最简单的方法之一,可以很容易地识别出那些值最大和最小的条目。)

总结
虽然树形图对于可视化某些类型的复杂、分层数据集很有用,但它们通常很难解释。如果使用树状图,在视觉上区分不同的高级类别,避免使用多种颜色来表示数值,并在设计时考虑到色盲用户。最后也是最重要的一点是,理解用户需要对数据做什么,并考虑其他可视化(如柱状图或散点图)是否可以替代或增强treemap。
参考文献
Ben Shneiderman:“树图可视化:二维空间填充方法”,ACM图形事务,11,192 -99。(1992)
Jarke J. van Wijk和Huub van de Wetering:“缓冲树地图:层次信息的可视化”,IEEE信息可视化研讨会(INFOVIS ' 99),旧金山,(1999年10月25-26日)
分享这篇文章: