我正在寻找一种方法来获取matplotlib
的高程相应色彩映射。
cmap'terrain
'看起来很棒,但颜色缩放不是基于零(即如果比例为0-> 5000m,0-> 1000m范围可能是蓝色阴影,你假设是在海平面以下)
Matlab函数等效于:
demcmap
让matplotlib在零高度标记周围移动地形色彩图的绿色/棕色和蓝色的最佳方法是什么?
答案 0 :(得分:6)
不幸的是,matplotlib没有提供Matlab demcmap
的功能。
python basemap
包中可能存在一些内置功能,我不知道。
因此,坚持使用matplotlib on-board选项,我们可以继承Normalize
来构建以色彩映射中间点为中心的颜色标准化。这个技术可以在StackOverflow上的another question中找到并适应特定需求,即设置sealevel
(可能最好选择为0
)和colormap {{中的值这个sealevel应该对应的1}}(范围在0和1之间)。在地形图的情况下,似乎col_val
对应于turqoise颜色,可能是一个不错的选择。
然后可以将Normalize实例作为0.22
的参数给出。可以在图片的第一行中看到结果数字。
由于围绕海平面的平滑过渡,imshow
周围的值以turqoise颜色显示,因此很难区分陆地和海洋。
因此,我们可以稍微改变地形图并剪切这些颜色,以便更好地看到海岸线。这是由地图的combining two parts完成的,范围从0到0.17,从0.25到1,从而切掉了它的一部分。
0