在颜色栏Matplotlib中设置颜色范围

时间:2014-02-26 13:30:29

标签: python matplotlib

我有一组代表降雨强度的图像。我需要简单地用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

1 个答案:

答案 0 :(得分:2)

您正在寻找的工具称为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字符串替换颜色字符串。所以,如果你想要,而不是“红色”,“#eeefff”只是说:

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

plt.hist2d(xvals, yvals, cmap=cmap)