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