如何在地图上显示密集的数据点是一个很实际的问题。如果处理不好,就可能在地图上显示大量的点,而这些点可能相互重叠,增加了视觉复杂度(比如纽约时报的人口统计可视化)。 一种解决这个问题的方法,是基于多分辨率的原理:先把地图分割成网格,然后在每个网格单元中,对数据点做统计,然后更加网格中的统计数据,对网格单元可视 化,比如映射到不同的颜色。这样,读者可以对数据先有基本的理解。如果对具体网格单元感兴趣,可以放大显示网格中的原始数据。

上面的图是由Zachary Forest Johnson 制作的用来显示美国沃尔玛商店位置的可视化。 这个作品就采用了上面提到的多分辨率方法:从左图,我们可以大概了解美国沃尔玛的分布情况,如果想知道某个具体的位置,可以点击放大网格单元。而在这个作 品中,另外一个特别的地方,是它采用了六边形(蜂窝)网格。这种网格对可视化的好处主要有两点,首先六边形是能分割平面边数最多的多边形,比四边形更有 效;其次,相对于其他规则的多边形分割,六边形在视觉上的歧义最小,比如四边形的话,人眼有可能就认为是一组横线和竖线。六边形网格的详细介绍可以参考这篇文章

Javascript的可视化framework D3.js提供了六边形相关的函数HexBin,结合PolyMaps可以用六边形网格来组织地理上的数据点。更多的关于Hexbin和相关的地理数据的实现可以参见这里

© 2011, 视物 | 致知. All rights reserved.

Related Posts:

  1. 这应该算是LoD(level-of-detail)思想的一个实现,用蜂窝网格实现,感觉很不错
    但是这个可视化作品在我的电脑上有点卡,左边的蜂窝点选好很久了,右边才慢慢一部分一部分显示出来
    在线的可交互可视化作品应该要多考虑下作品对资源的消耗,不然再好看看不到也是枉然
    不过也有可能是我电脑的配置太低啦~