为了让imshow用自定义的“增强”(例如自定义颜色图)来绘制数据,我绞尽脑汁。我使用的是预先确定的配色方案,有预先确定的比例,所以我没有想出这种疯狂的颜色/比例组合。在
简而言之,我有一个十六进制的颜色列表,我需要制作自定义颜色映射,以及相关的比例:
colors = ['#000000', '#060606', '#4b4b4b', '#707070', '#404040', '#707070', '#a0a0a0', '#000000', '#ffffff', '#888888', '#585858']
scale = [0, 59, 68, 97, 175, 188, 199, 209, 215, 221, 226]
如你所见,我的比例尺不是线性的。看来是临时编造的。在
不管怎么说,我对matplotlib还是有点陌生,我很难通过树看到森林,如何获得: 1) 自定义颜色映射,给定其非线性或指数 2) 将自定义颜色映射到这个愚蠢的不规则比例 3) 在imshow里画出来
为了记录在案,我使用底图在图像下绘制海岸线/国家等(这是一个气象卫星图像,供关心的人使用)。在
我开始用colors.ListedColorMap,但这给了我一个等间距的彩色地图。不用说,下面的代码块(为简洁起见缩短)生成了一个均匀缩放的colormap,它在图像上重复几次,使图像无法读取:
^{pr2}$有什么想法如何结合定制的色彩图和比例,并让它在imshow中绘图?如果我的沮丧让我暂时无法回答一个简单的问题,我很抱歉。在
谢谢!在
所以你需要指定颜色的间隔。使用
BoundaryNorm
可以很容易地做到这一点,但是需要知道colormap的最大值。在所以假设最大值是250,我们可以将它添加到
scale
中,这样这个列表现在表示区间边界。因此,scale
比colors
多了一个元素。在相关问题 更多 >
编程相关推荐