这是我为土地利用类型创建的离散色条,它看起来像是你的工作,因为Z值也是从1到14的整数数组。
我的方法
手动创建颜色映射和颜色条标签,从这里学习
我的代码
cMap = ListedColormap(['white', '#8dd3c7','#ffffb3','#bebada', \
'#b2182b','#80b1d3','#fdb462','#b3de69','#6a3d9a',\
'#b2df8a', '#1f78b4', '#ccebc5','#ffed6f'])
cMap = plt.cm.get_cmap("jet",lut=13)
lulc = plt.pcolormesh(lulc,cmap = cMap,alpha = 0.7)
z_range = np.linspace(1,14,14)
list = z_range.astype('S10')
k = -0.05
for i in range(0,13,1):
k = k + 1/13.0
ax.annotate(list[i],xycoords='axes fraction',xy=(1.12,k),fontsize = 14, \
fontstyle = 'italic',zorder =3)
cbar = plt.colorbar(lulc,ticks = [ ])
for label in cbar.ax.yaxis.get_ticklabels()[::-1]:
label.set_visible(False)
我的结果
![](https://istack.dev59.com/2Vd1u.webp)
(来源:tietuku.com)
希望能有所帮助!
plt.scatter(X, Y, c = Z, cmap=cm.get_cmap('RdPu',n), s=100, vmin=np.min(Z), vmax=np.max(Z))
引发了错误NameError: name 'cm' is not defined
,即使使用了import matplotlib.cm as cm
。 - astromonerdscatter
的默认行为是使用vmin=np.min(c),vmax=np.max(c)
,所以你可以省略一些打字的工作 :) - Andras Deak -- Слава Україні