【问题标题】:Setting colors range in colorbar Matplotlib在颜色条 Matplotlib 中设置颜色范围
【发布时间】:2014-02-26 22:36:38
【问题描述】:

我有一组代表降雨强度的图像。我需要用离散颜色的 colorbar() 简单地绘制它们。我找到了其他一些答案,但我找不到它们完全相似。 我的问题是我必须根据给定的降雨强度范围设置颜色范围。

如何根据颜色栏中的给定值设置颜色?下面是一张图片的一个示例:

No  | Color         |  Rain rate
------------------------------ 
0   |  Not visible  | Under 0.2
1   |  Off-white    | 0.3 - 0.5
2   |  Sky-blue     | 0.6 - 1.5
3   |  Light Blue   | 1.6 - 2.5
4   |  Blue         | 2.6 - 4
5   |  Light Cyan   | 5 - 6
6   |  Cyan         | 7 - 10
7   |  Dark Cyan    | 11 - 15
8   |  Yellow       | 16 - 35 
9   |  Yellow-orange| 36 - 50
10  |  Orange       | 51 - 80
11  |  Orange-red   | 81 - 100
12  |  Red          | 100 - 120
13  |  Dark Red     | 120 - 200
14  |  Maroon       | 200 - 350
15  |  Dark Brown   | over 350

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    您正在寻找的工具称为 ListedColorMap,请在此处查看其文档: http://matplotlib.org/api/colors_api.html#matplotlib.colors.ListedColormap

    cmap = colors.ListedColormap(['white', 'red'])
    bounds=[0,5,10]
    norm = colors.BoundaryNorm(bounds, cmap.N)
    
    plt.hist2d(xvals, yvals, cmap=cmap)
    

    在 matplotlib 中,只要您需要自定义颜色,就可以将颜色字符串替换为 rob 字符串。所以,如果你愿意,不要说“red”,而是说“#eeefff”:

    cmap = colors.ListedColormap(['white', "#eeefff"])
    bounds=[0,5,10]
    norm = colors.BoundaryNorm(bounds, cmap.N)
    
    plt.hist2d(xvals, yvals, cmap=cmap)
    

    【讨论】:

    • 谢谢。但是,我在 matplotlib 方面的经验较少。如何手动设置上述颜色。因为,在你给我的链接中,我只看到“b” - 蓝色,“r” - 红色......这样的“直”颜色。
    • 已编辑以回答您的问题。
    • @Spider 您还可以使用 HTML 颜色名称。这是我经常使用的一个很好的列表:w3schools.com/html/html_colorvalues.asp
    猜你喜欢
    • 2011-03-23
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    相关资源
    最近更新 更多