热图是否是“数据可视化的最无效类型之一”?


22

问题:热图(对于哪种类型的数据可视化问题)最有效?(特别是,它比所有其他可能的可视化技术更有效吗?)

热图何时最无效?

是否可以使用任何常见的模式或经验法则来确定热图是否可能是可视化数据的有效方法,以及何时可能无效?

(主要是我考虑了2个类别变量和1个连续变量的热图,但也有兴趣听取有关其他类型热图的意见。)

上下文:我正在上一门有关数据可视化的在线课程,现在他们正在讨论无效和过度使用的地块类型。他们已经提到了炸药图和饼图,给出了为什么这些效果不佳以及为什么有更好的替代方法的原因,这很清楚,并且使我信服。此外,很容易找到其他资料来证实关于炸药图和饼图的既定观点。

但是,该课程还说“热图是数据可视化的最无效类型之一”。原因的解释如下。但是,当我试图在Google上找到证实这一观点的其他地方时,与查找关于饼形图和炸药图的有效性的观点相反,我遇到了很多困难。因此,我想知道在课程中给出的热图表征在何种程度上是有效的,以及在特定背景下,针对它们的影响因素何时最不重要和最重要。

给出的原因是:

  1. 很难将颜色映射到连续的比例尺上。

    该规则有一些例外,因此这通常不会破坏交易,但是在热图的情况下,此问题特别困难,因为我们对颜色的感知会根据相邻颜色而变化。因此,即使在较小的数据集中,热图也不适合查看单个结果。这导致:

  2. 通常,使用查表法回答特定问题是不可行的,因为不可能以足够的精度推断出与给定颜色相对应的数值。

  3. 通常情况下,数据不是以显示趋势的方式进行聚类的。

    没有这种聚类,通常很难或不可能推断出有关总体总体模式的任何信息。

  4. 热图通常仅用于传达“哇因素”或只是看起来很酷,尤其是在使用多色渐变时,但是通常有更好的方法来传达数据。

以通用比例绘制连续数据始终是最佳选择。如果存在时间分量,则最明显的选择是折线图。


15
对“热图”的批评归结为(4)的最后一行:这些“更好的交流方式”到底是什么?(如果没有更好的方法,那么(1)-(3)就几乎没有关系。)如果从字面上看是为了传递数据,那么显然还有更好的方法:写下数字。但是,可视化的目的很少是传达数据:相反,它是为了支持解释或发送消息。 您的消息来源有什么解释,它声称是表达这些解释的更好方法?
ub

4
@whuber作为对此的补充-关于热图的一件非常好的事情是,在很多情况下,可以通过直接在每个图块上显示原始数据(可能是适当的四舍五入)来轻松对其进行补充。即使对电子表格上单元格的背景颜色使用条件格式设置也是一种非常有效且非常常见的“热图”,在这种情况下,很难看到如何对其进行改进。
银鱼

2
我的评论仅与评论1有关。正确的是,颜色(色相)在心理上并未映射到有序的比例,尽管在物理上(波长)确实如此。但是,通过添加多余的尺寸(例如亮度)可以使它们更容易解释。您可能拥有比光高的暗度,但可以使用浅蓝色和深红色之类的颜色。
David Lane

2
取决于上下文。这是一个从热图获得的有价值的,可操作的信息的好例子,我认为没有其他更方便或有用的数据可视化类型了。
杰森·C

5
颜色是多余的(并且,选择得很差-它只是R中的默认图像颜色图),但这我几年前研究的有关Minesweeper游戏的一个示例。我发现热图立即发光,因为它揭示了有关问题的结构,一旦您看到并思考了一会儿,该结构就会直观地变得清晰起来,但是(对大多数人而言)在看到该图之前并不是立即显而易见的。
红衣主教

Answers:


15

对此并没有所谓的“最佳”情节。如何绘制数据取决于您要传达的信息。常用图的优点是用户更有可能阅读它们。但是,这并不意味着它们一定是最佳选择。

关于热图,我已根据反对它们的假想命令作出了回应。

广告1)如果您不信任颜色作为编码通道,请改用亮度,其范围应包括深灰色到浅灰色的“颜色”色调。大多数情况下,您想对连续变量进行装箱(另请参见5),以便可以减少颜色数量并使用户更容易解码。这不是必须的。看一下这个示例,其中不对连续变量进行分档。

广告2)当然,不应将其用作查找精确值的替代方法。热图应主要用于说明模式,而不是替代表格。

广告3 + 4)我看不到它仅与热图有什么关系。

广告5)理想情况下,热图是理想的,但不一定与离散变量一起使用。对于连续变量,可以将热图用作一种二维直方图或条形图,并具有适当的分档以及亮度作为编码通道。


2
很棒的答案!除了我不知道“广告”是什么意思。拉丁?缩写?
xan

1
谢谢!“ ad”的意思是“上”或“有关”,我想它来自拉丁语。
g3o2

我也从未见过“ ad”使用过这种方式(cc,@ xan)。根据您的描述,我想我可能会用“ 步伐”
gung-恢复莫妮卡

1
另外,请记住要对基于亮度的热图进行伽马校正。
user253751

3
@gung IMO,不是。它没有节奏,没有任何意义-只是意味着附加,指的是……别说它在西方是普遍的,来自拉丁语,广泛用于神学,科学和政治文学等领域。其他事情。在(邮件)对话框中,双方将使用它来引用每个点的参数。不过,随着书面语言的精简,它似乎已受到青睐。通常的替换方式只是使用“ 1.1”而不是“ Ad 1.1”,这可能有点令人困惑,对我来说似乎有些粗鲁,但是,哦。
a安

5

有人不能说热图是最无效的可视化类型。我宁愿说这取决于您的要求。在某些情况下,热图非常有用。假设您必须针对某个国家/地区(或城市)的犯罪情况进行报告。在这里,您将拥有一个庞大的数据集,该数据集可能具有时间依赖性。

同样,假设您必须准备一份有关城市用电量的报告。在这些情况下,您可以轻松地通过热图可视化。这样会更有意义,也不会那么麻烦。

因此,简而言之,如果您有大量连续数据,并且想要制作一个可以快速查明答案的报告,那么最好使用热图。


2
对于能源消耗而言,通常没有比热图更好的图表了:argustech.be/wp-content/uploads/2012/04/heatmap.png周末和工作时间在查看者处跃动。您可以看到基本负载,可以看到峰值,可以看到何时发生。您可以在几秒钟内检测到任何奇怪的图案,例如,如果某些电气设备始终打开或启动得太早或太晚。
艾里克·杜米尼尔

4

原始问题中的批评1涵盖了最大的缺点-读取热图的人很难解码所传达的定量信息。考虑一个xy散点图或点图,其中基础数量与图表上的距离直接相关-解释起来非常简单。

另一方面,在热图中,阅读图表的人可以自由地将10%的“变红”或“较暗”解释为自己的满意程度。最重要的是,人们识别颜色和阴影的能力不同。这些是真正的缺点,但并不是普遍致命的。

相比之下,第三种批评似乎无意间发现了热图特别有用的场合-当数据聚集在2D平面上,从而第三维中的相似值显示为特定阴影或颜色的斑块。因此,尽管热图在某些方面无效,但对其他方面却有用,它们应该留在您的包中,就像高尔夫球手经常携带投球楔或类似物,尽管他们没有开车或推杆的用处,或者木匠没有忽略锤子,因为它们不利于切割木材。

一般而言,可视化数据应视为迭代活动,您尝试进行一些可视化以展现数据的重要特征时将花费一些时间,包括尝试多种可视化,然后尝试在其中找到最佳设置特殊的选择。也不应假定结果将是一次可视化-有时需要大量数据可视化以突出显示数据的多个重要特征。在这种情况下,有时对于特定数据集的特定特征,热图将是最有效的,并且如上所述的通信群集可能是其中之一。总体而言,在很多情况下,单个可视化无法完成所有操作,并且将需要不止一个。


3

正如其他人提到的那样,热图始终无效是不正确的。实际上,它们在许多情况下都非常有效。

例如,如果要可视化4D数据,在许多绘图软件中执行前三个尺寸就足够简单了。但是,整个4D概念根本很难概念化。什么是“第四”方向/尺寸?

那是一个热图可能有效的地方,因为它将允许在坐标轴上绘制前三个尺寸,并且可以通过将热图堆叠到绘制的平面(或线,但不太可能)上来可视化第四个尺寸。

底线是您需要上下文。您在可视化中寻找什么?另外,作为一个自学友,我可以告诉您,这些在线课程往往非常琐碎且无济于事。当您在寻找有关特定主题的信息/帮助而不是寻求学习整个主题时,最好只使用它们。

无论如何,祝你好运。


3

从本质上讲,热图显示的数据具有两个连续的自变量(或(不是十分等效的)二维矢量空间中的一个自变量)和一个连续的自变量。对于此类数据,热图无疑是有效的数据可视化类型之一。是的,它有问题,但这是不可避免的:您实际上只有两个维度可以使用,而三维空间不能以保留结构的方式映射到该空间,因此您需要一个技巧,例如将一个维度映射为颜色或绘制轮廓线等。

R2X×Y|X||Y|,对于分类变量而言是有限的,换句话说,两个分类变量的笛卡尔积可以视为一个分类变量!鉴于此,您也可以使用其他图表,这些图表不存在热图问题。

如果您发现在两个分类变量上的热图似乎有用的情况,则表明它们可能不是真正的分类变量,而是量化的连续变量。


4
这个答案很有趣,但是我认为使用带有分类变量的热图的概念显得有些草率。例如,一个人可以通过其数量(或一些其他相关的排序变量)对分类级别进行排序,然后使用热图可视化联合分布或随联合分类级别而变化的一些其他数量。这可以与系动词(及其广义概念)联系在一起。这样的可视化处理得当,可以揭示数据中的真实结构,否则将很难检测到。(...)
红衣主教

(...)而且,这种方法与将分类层次嵌入欧几里得空间的任何(直接)概念无关。
主教

我想知道您是否对使用热图进行基因表达/微阵列数据的做法有任何评论,那么-这些似乎是将热图用于2个分类变量和一个连续变量的情况,而分类变量实际上并不能解释为量化的连续变量。或者我猜想一般来说,热图是分类变量的相关矩阵。
Chill2Macht

3

热图擅长从时间序列的角度提供多个变量的简化视图-数据可以是随时间变化的绝对值,也可以使用Z分数或其他手段通过不同的测量间隔或子组的相对变化来检查变量,从而对数据进行标准化。它确实提供了一个非常直观的视图,可以发现相关性或相反性,并替换了许多图形。它们也可以用于预处理,以评估可能的降维,即分解或PCA。

当使用这种方法发现相关性时,不良的变量和其他因素可能会被隐藏和传递。折线图确实会发生相同的隐藏方面-但是,由于存在大量变量,我的经验是,热图会带来大量信息,因此用户不会考虑中间方面或其他隐藏因素。

这是从一位具有进步经济学家观点的数据科学家那里获得的,他在该领域拥有20年的生产数据的历史,其任务是对公众进行此类数据教育。


1

当散点图上查看的数据点太多时,热图比散点图更具优势。可以在散点图中使用半透明的数据点来缓解这种情况,但超过某个阈值,汇总数据将变得更好。

此博客文章中,给出了一个令人难以理解的散点图示例。

散点图只能在视觉上表示达到一定阈值的密度-“无处不在的点”的阈值...

地块密度,不是点

解决方案是绘制合并的点密度,而不是点本身。我们已经将此方法称为直方图了。

在两个方面,有多种实现方法。仓的形状可以从均匀地平铺平面的任何方法中获得,例如正方形或六角形。对于每个图块,都会计算图块内部的数据点数。然后根据点数为图块分配颜色。

来自ggplot2文档的关于2d bin计数热图的类似声明:

这是geom_point()存在过度绘图的一种有用的替代方法。

在的文档中geom_point()

过度绘图

散点图最大的潜在问题是过度绘图:每当您有多个点时,点可能会相互绘制。这会严重扭曲该图的视觉外观。没有解决此问题的方法,但是有一些技术可以提供帮助。您可以添加额外的信息geom_smooth()geom_quantile()geom_density_2d()。如果唯一的x值很少,则geom_boxplot()可能也很有用。

或者,您可以在每个位置汇总的点数并显示在某些方面,使用geom_count()geom_hex()geom_density2d()

另一种技术是使这些点透明(例如geom_point(alpha = 0.05))或很小(例如geom_point(shape = "."))。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.