Python matplotlib手动色彩映射

时间:2014-08-26 12:54:24

标签: python matplotlib-basemap color-mapping colormap

我有使用matplotlib底图在python中绘制的二维字段。 字段的值从0到1000不等。是否可以创建具有固定渐变和颜色的手动色彩图?它应该看起来像:

表示值 - 设置颜色

  • 0 - 1 - white
  • 1 - 5 - 深绿色
  • 5 - 10 - 浅绿色
  • 10 - 25 - 黄色
  • 25 - 50 - brown
  • 50 - 100 - orange
  • 100 - 500 - 浅红色
  • 500 - 1000 - 暗红色
  • > 1000 - 紫色

我是python的新手。所以,欢迎任何建议。

1 个答案:

答案 0 :(得分:5)

This正是您想要的。

你必须输入它的方式有点令人困惑,所以this可能会更有帮助。

要获得大于1000 位,您需要屏蔽1000以上的值,并使其余的比例为0-1000。

from matplotlib.colors import LinearSegmentedColormap
cMap = []
for value, colour in zip([0,1,5,10,25,50,100,500,1000],["White", "DarkGreen", "LightGreen", "Yellow", "Brown", "Orange", "IndianRed", "DarkRed", "Purple"]):
    cMap.append((value/1000.0, colour))

customColourMap = LinearSegmentedColormap.from_list("custom", cMap)

这就是创建自定义色彩映射所需的全部内容。要使用它,只需将其传递给绘图函数(无论您使用哪一个)作为命名参数cmap

这就是它的样子。enter image description here