热图(英语:heat map)在二维空间中以颜色的形式显示一个现象的绝对量,是一种数据可视化技术。颜色的变化可能是通过色调或强度,给读者提供明显的视觉提示,说明现象是如何在空间上聚集或变化的。热图有两种完全不同的类别:聚集热图和空间热图。在聚集热图中,幅度被排列成一个固定单元格大小的矩阵,其行和列是离散的现象和类别,行和列的排序是有意的,而且有些随意,目的是暗示聚集或描绘出通过统计分析发现的聚集。单元格的大小是任意的,但足够大,可以清晰可见。相比之下,空间热图中某一量级的位置是由该量级在该空间中的位置所决定的,没有单元的概念,现象被认为是连续变化的。
![Thumb](http://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Heatmap.png/640px-Heatmap.png)
![Thumb](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/A_3D_triangulation_coverage_heatmap.jpg/640px-A_3D_triangulation_coverage_heatmap.jpg)
虽然“热图”是一个新兴的词汇,但是用明暗的矩阵来标示元素的方法已经有超过一世纪的历史了。[1]
历史
热图起源于数据矩阵中数值的二维显示。较大的数值用深灰色或黑色的方格(像素)呈现,较小的数值用较浅的方格表示。Loua (1873)使用明暗矩阵来可视化巴黎各区的社会统计数据。[1] Sneath (1957)通过将矩阵的行和列进行换位,将相似的数值按照聚类的方式放在彼此附近,来显示聚类分析的结果。Jacques Bertin使用类似的表示方法来显示符合累积量表的数据。将聚类树连接到数据矩阵的行和列的想法起源于1973年的Robert Ling。Ling使用打印机上的字符来表示不同的灰度,每个像素一个字符宽度。Leland Wilkinson在1994年开发了第一个用高分辨率彩色图形绘制聚集热图的电脑程序(SYSTAT)。
软件设计师Cormac Kinney在1991年注册了“热图”一词的商标,用来描述描述金融市场资讯的二维显示。[2] 2003年收购Kinney发明的公司无意中让该商标失效。[3]
类型
![Thumb](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/MH370_location_probability_heat_map_per_DST_Group_analysis.jpg/640px-MH370_location_probability_heat_map_per_DST_Group_analysis.jpg)
热图有不同的种类:
- 生物学热图在分子生物学中通常用于表示从DNA微数组中获得的许多基因在一些可比样本(如不同状态的细胞、不同患者的样本)中的表达水平。
- 树图是数据的二维层次划分,在视觉上类似于热图。
- 拼贴图(Mosaic plot)是表示双向或多向数据表的平铺热图。与树图一样,拼贴图中的矩形区域是分层组织的。这意味着这些区域是矩形而不是正方形。Friendly (1994)调查了该图的历史和使用情况。
- 密度函数可视化是一种用于表示地图中点的密度的热图。它使人们能够感知点的密度,而不受缩放系数的影响。Perrot et al. (2015)提出了一种使用密度函数的方法,利用Spark和Hadoop的大数据基础设施来可视化数十亿和数十亿的点。[5]
配色
可以使用许多不同的配色方案来说明热图,每种方案都有感知上的优势和劣势。彩虹色彩映射经常被使用,因为相比于灰度的差异,人类更容易感知色彩的明暗,据称这将增加图像中可感知的细节数量。然而,科学界的许多人并不鼓励这样做,原因如下:[6][7][8][9][10][11]
等值区域图与热图的对比
等值区域图有时被误称为热图。等值区域图的特点是在地理边界内有不同的阴影或图案,以显示感兴趣的变量的比例,而热图(在地图上)的颜色变化与地理边界并不能对应上。[12]
软件实现
有几种热图软件可免费使用:
- R是一个免费的统计计算和图形软件环境,它包含了几个跟踪热图的功能,[13][14] 包括交互式聚集热图[15](通过heatmaply (页面存档备份,存于互联网档案馆) R语言包)。
- Gnuplot是一个通用的免费命令行绘图程序,可以跟踪2D和3D热图。[16]
- Google Fusion Tables可以从Google Sheets电子表格中生成热图,限制在1000点的地理数据。[17]
- Dave Green的'cubehelix'配色方案提供了一种配色方案的资源,这种配色方案可以在黑白postscript装置上打印成单调增加的灰度。[18]
- Openlayers3可以在矢量图层中渲染所有地理特征的选定属性的热图层。[19]
- D3.js[20][21]、AnyChart[22][23]和Highcharts[24][25]是用于数据可视化的JavaScript库,它们提供了创建交互式热图图表的能力,从基本的到高度定制的,都是其解决方案的一部分。
- Qlik Sense允许在热图中以颜色模式显示比较数据,这包含在其可视化捆绑中。[26]
- MATLAB提供了热图可视化的能力,具有多种配置选项。[27][28]