Python 如何使用mpl_toolkits.basemap.cm中的颜色映射创建离散的颜色条?

Python 如何使用mpl_toolkits.basemap.cm中的颜色映射创建离散的颜色条?,python,numpy,matplotlib,matplotlib-basemap,colormap,Python,Numpy,Matplotlib,Matplotlib Basemap,Colormap,当我使用matplotlib.cm中的colormap(如“jet”,“Set2”等)绘制pcolormesh绘图时,我可以使用: cMap = plt.cm.get_cmap("jet",lut=6) 颜色栏显示如下: 但是如果我想从Basemap包调用colormap(比如GMT\u drywet,GMT\u no\u green,等等)。我无法使用plt.cm,获取\u cmap来获取这些颜色映射并对其进行分割 mpl\u工具包.basemap.cm是否具有类似于lut的功能

当我使用matplotlib.cm中的colormap
(如
“jet”
“Set2”
等)绘制pcolormesh绘图时,我可以使用:

 cMap = plt.cm.get_cmap("jet",lut=6)    
颜色栏显示如下:

但是如果我想从
Basemap
包调用colormap(比如
GMT\u drywet
GMT\u no\u green
,等等)。我无法使用
plt.cm,获取\u cmap
来获取这些颜色映射并对其进行分割


mpl\u工具包.basemap.cm
是否具有类似于
lut
的功能

只要正在绘制的绘图具有离散的颜色值(例如
轮廓
轮廓
),则
颜色条
应自动生成具有离散步骤的颜色条。以下是基于以下内容的绘图:

在@tacaswell的上面进行扩展,您可以使用
\u重采样
方法实现相同的功能。这将为
pcolor
/
pcolormesh
绘图生成分段彩色贴图,这些绘图不会生成像
contourf
这样的离散阶跃色条。要达到与您在问题中使用jet时相同的效果:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import cm
plt.figure()
cmap = cm.GMT_drywet._resample(6)
pm = plt.pcolormesh(np.random.rand(10,8), cmap=cmap)
plt.colorbar(pm, orientation='horizontal')
plt.show()

您想在哪种类型的绘图中添加颜色条?您可以显示一个吗?您可以在彩色地图对象上使用私有方法
\u resample
。不确定为什么这个方法是私有的…谢谢!但是当我使用pcolor/pcolormesh类型的绘图时,它不起作用。这是因为
pcolor
使用连续变化的颜色贴图而不是离散级别来绘制数据。如果您编辑了您的问题,以便更清楚地解释您要查找的结果,并显示您当前用于生成绘图的代码,这会有所帮助。
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import cm
plt.figure()
cmap = cm.GMT_drywet._resample(6)
pm = plt.pcolormesh(np.random.rand(10,8), cmap=cmap)
plt.colorbar(pm, orientation='horizontal')
plt.show()