HeatMap热图原理
热图简介
通过热图可以简单地聚合大量数据,并使用一种渐进的色带来优雅地表现,最终效果一般优于离散点的直接显示,可以很直观地展现空间数据的疏密程度或频率高低。但也由于很直观,热图在数据表现的准确性并不能保证。
生成原理
其生成的原理简单概括为四个步骤:
(1)为离散点设定一个半径,创建一个缓冲区;
(2)对每个离散点的缓冲区,使用渐进的灰度带(完整的灰度带是0~255)从内而外,由浅至深地填充;
(3)由于灰度值可以叠加(值越大颜色越亮,在灰度带中则显得越白。在实际中,可以选择ARGB模型中任一通道作为叠加灰度值),从而对于有缓冲区交叉的区域,可以叠加灰度值,因而缓冲区交叉的越多,灰度值越大,这块区域也就越“热”;
(4)以叠加后的灰度值为索引,从一条有256种颜色的色带中(例如彩虹色)映射颜色,并对图像重新着色,从而实现热点图。
(1)灰度带和彩虹色带
(2)单热点显示
单热点的显示,至少要确定它的中心灰度值、半径,当然还有xy和色带。中心灰度值默认设为50(太小显示效果不好)。根据半径的大小(一般是25,屏幕坐标),由中心(50)到边界(0)渐进地填充灰度。我使用黑色(任何颜色都可以)的Alpha通道来进行灰度值的累加,填充后中心位置的ARGB值是(50,0,0,0),边界处是(0,0,0,0),这样就能得到上图左边的灰度图了。最后根据灰度值映射色带得到彩虹带中对应位置的颜色。50的灰度值,只能映射到彩虹带的前1/5处,因而上图右边单热点的颜色以蓝色为主,略带青色。 每个单一热点有一个Weight,默认设为1,目前暂时没有用到(ArcGIS Flex的热图实现中,Weight用来在地图缩小时累加多个离散点聚合后中心灰度值的大小。)。Weight不是类似通常二维空间数据中的第三维属性数据,热图只能表现离散点空间上的频率,而不能表现其属性在空间上的分布。例如地震震源的热图,并不能表示其震级大小的空间分布,而只能表现地震次数的多少。
(3)多热点叠加显示
叠加显示,点位置及权重是随机给的,半径是指定的。图中有422个点,半径是50。点越密集的的区域,叠加的灰度也就越多,映射后也显得比较“热”。
参考文献
https://www.cnblogs.com/h2zZhou/p/7478497.html
2023-08-15 广告