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

对于值 - 设置颜色

  • 0 - 1 - 白色
  • 1 - 5 - 深绿色
  • 5 - 10 - 浅绿色
  • 10 - 25 - 黄色
  • 25 - 50 - 棕色
  • 50 - 100 - 橙色
  • 100 - 500 - 浅红色
  • 500 - 1000 - 深红色
  • > 1000 - 紫色

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

    最佳答案

    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 传递给 plot 函数(无论您使用哪个)

    这是它的样子。

    关于Python matplotlib 手动颜色图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25506341/

    10-16 15:00
    查看更多