python - 在 matplotlib 颜色图中选择起始颜色

标签 python matplotlib matplotlib-basemap

我有如下图所示。目前,该图的颜色方案使用了颜色图的整个范围 (mpl.cm.Paired)。我想做的是如何限制 matplotlib 仅使用颜色图的一个子集,但一直无法弄清楚。在这种情况下,我试图让起始颜色为深蓝色。这是我的代码的绘图部分:

Figure = plt.figure(figsize=(22,10))
Map    = Basemap(projection='robin', lon_0=0, resolution='l')
x, y   = Map(LONS, LATS)
levels = np.arange(0, 4100, 100)
fcp    = Map.contourf(x, y, data, levels, interpolation="bicubic", cmap=mpl.cm.Paired)

cb = Map.colorbar(fcp, "bottom", size="5%", pad='5%', extendrect=False)
cb.ax.tick_params(labelsize=18)
cb.solids.set_edgecolor("face")
cb.set_label("metres",fontsize=18)
cb.ax.set_aspect(0.047)

Map.drawcoastlines(linewidth=1)
Map.drawmapboundary(linewidth=1)
Map.drawmeridians([-150,-100,-50,0,50,100, 150],labels=[1,1,1,0],fontsize=18)
Map.drawparallels([-60,-30,0,30,60],labels=[1,1,1,1],fontsize=18)

enter image description here

最佳答案

实现此目的的一种方法是调用函数 mpl.cm.Paired() 以获得标准化范围的子集(即 [0-1]),然后使用列表它返回以定义新颜色图的颜色:

import matplotlib.colors as mcol

lvTmp = np.linspace(0.1,1.0,len(levels)-1)
cmTmp = mlp.cm.Paired(lvTmp)
newCmap = mcol.ListedColormap(cmTmp)

您需要摆弄 linspace 中的 0.1 值,以从内置颜色图中获取所需的起始颜色。

enter image description here

关于python - 在 matplotlib 颜色图中选择起始颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26102515/

相关文章:

python - 为什么 kivy read_pixel 没有返回预期的颜色?

python - 如何使用神经网络同时预测期望值和方差?

python - 如何在循环内的字典中的键中添加值?

python - 如何在 python 中使用 matplotlib/basemap 在正交投影上标记平行线/子午线

matplotlib - 如何在 basemap 上绘制矩形

python - 类型错误:字符串索引必须是整数//在 python 中使用 JSON 作为 dict

python - 在循环的每次传递处显示子图

python - 如何将颜色条添加到已经存在的图形中?

python - 在 Matplotlib 上显示 x 轴 - Python

python - 使用 matplotlib-basemap 在边界处绘图