Python 在matplotlib colormap中选择起始颜色
我有下图。目前,该图的配色方案使用了整个配色图范围(mpl.cm.Paired)。我想做的是,如何限制matplotlib只使用colormap的一个子集,但我一直没有弄清楚。在这种情况下,我试图让开始的颜色是一个较深的蓝色阴影。下面是我的代码的绘图部分:Python 在matplotlib colormap中选择起始颜色,python,matplotlib,matplotlib-basemap,Python,Matplotlib,Matplotlib Basemap,我有下图。目前,该图的配色方案使用了整个配色图范围(mpl.cm.Paired)。我想做的是,如何限制matplotlib只使用colormap的一个子集,但我一直没有弄清楚。在这种情况下,我试图让开始的颜色是一个较深的蓝色阴影。下面是我的代码的绘图部分: Figure = plt.figure(figsize=(22,10)) Map = Basemap(projection='robin', lon_0=0, resolution='l') x, y = Map(LONS, LAT
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)
一种方法是调用函数
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
值,以从内置的colormap中获得所需的开始颜色
一种方法是调用函数
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
值,以从内置的colormap中获得所需的开始颜色
在现有的基础上创建一个新的
colormap
可能是最简单的方法。为什么不使用Blues
colormapPaired
在这里真的不合适。@mwaskom虽然颜色图的选择一直是科学界人士热烈讨论的话题,但我的问题并不一定与这个数字有关。可能最简单的方法是在现有的基础上创建一个新的colormap
。为什么不使用,例如。,Blues
colormapPaired
在这里真的不合适。@mwaskom虽然颜色图的选择一直是科学界人士热烈讨论的话题,但我的问题并不一定与这个数字有关。太好了!谢谢你,这很好用。没想到会这么容易!一旦你了解了彩色贴图和规格化器,你可以用它们做很多事情。和往常一样,最难的部分是适当地使用颜色。太好了!谢谢你,这很好用。没想到会这么容易!一旦你了解了彩色贴图和规格化器,你可以用它们做很多事情。和往常一样,最难的部分是适当地使用颜色。