Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在matplotlib colormap中选择起始颜色_Python_Matplotlib_Matplotlib Basemap - Fatal编程技术网

Python 在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

我有下图。目前,该图的配色方案使用了整个配色图范围(mpl.cm.Paired)。我想做的是,如何限制matplotlib只使用colormap的一个子集,但我一直没有弄清楚。在这种情况下,我试图让开始的颜色是一个较深的蓝色阴影。下面是我的代码的绘图部分:

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
colormap
Paired
在这里真的不合适。@mwaskom虽然颜色图的选择一直是科学界人士热烈讨论的话题,但我的问题并不一定与这个数字有关。可能最简单的方法是在现有的基础上创建一个新的
colormap
。为什么不使用,例如。,
Blues
colormap
Paired
在这里真的不合适。@mwaskom虽然颜色图的选择一直是科学界人士热烈讨论的话题,但我的问题并不一定与这个数字有关。太好了!谢谢你,这很好用。没想到会这么容易!一旦你了解了彩色贴图和规格化器,你可以用它们做很多事情。和往常一样,最难的部分是适当地使用颜色。太好了!谢谢你,这很好用。没想到会这么容易!一旦你了解了彩色贴图和规格化器,你可以用它们做很多事情。和往常一样,最难的部分是适当地使用颜色。