热图绘制中使用非均匀调色板

类别:    标签: gnuplot 数理   阅读次数:   版权: (CC) BY-NC-SA

在绘制热图/颜色映射图时, 如果数据分布范围很大, 且不均匀, 使用均匀的线性颜色映射容易导致整个图的颜色比较单一, 无法表现数据的细节. 一种解决方法是使用非均匀的颜色映射, 也就是, 数据和颜色的对应不是线性的, 而是让各个范围内的数据数目尽量一致, 这样得到的图中颜色分布比较均匀, 能显示更多细节. 这种方法是我在GMT教学手册 晕染地图中看到的, 所以我就用gnuplot来复现一下这种绘图方式. 所用数据与示例中的相同, 来自MARINE GRAVITY FROM SATELLITE ALTIMETRY, 但范围稍小.

先来看看用常规的线性调色板效果如何.

可以看到如果绘制整个范围的话, 大部分值都分布在零附件, 所以整个画面上颜色比较均一, 很难看出细节.

下面我们根据数据分布的累积分布来设定调色板的映射关系. 大致意思就是将数据排序, 将每个颜色区间中包含的数据个数保持一种, 使用这样的颜色映射可以保证各种颜色呈现的面积大致相同, 所以能显示出更多细节.

接下来也可以添加山体阴影, 参考前一篇文章中的方法, 我这里就不重复了.

实际上, 如果我们看下数据的分布

可以发现, 分布是比较对称的, 累积分布函数在中心值附近接近线性, 所以只要我们将数据的取值范围限定在中心值附近, 一样可以得到与上面类似的图

◆本文地址: , 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆


前一篇: 颜色空间与颜色混合
后一篇: 使用gnuplot绘制氢键数据的平行轴图

访问人次(2015年7月 9日起): | 最后更新: 2022-12-17 03:04:57 UTC | 版权所有 © 2008 - 2022 Jerkwin