自定义颜色条与matplotlib中的箭袋图

时间:2017-09-19 16:53:32

标签: python matplotlib colorbar colormap

我试图制作一个箭袋图,矢量长度范围从0到15.我想使用灰色色图,但是从半范围开始,这样0已经是灰色的,15是黑色的。 到目前为止我所做的是:

cmap = cm.get_cmap('Greys', 10)

norm = matplotlib.colors.Normalize(vmin=-5.,vmax=15.,clip=False)
Q = ax.quiver(xi, yi, zix, ziy, lengths * 1000., units='inches', width=0.008, headwidth=6, headlength=7, scale=5,
              scale_units='inches',cmap=cmap, norm=norm)
cb = plt.colorbar(Q, cax=ax3, ticks=[0.0, 3.0, 6.0, 9.0, 12.0, 15.0], format='%.1f', norm=norm)

颜色范围是正确的,但整个颜色图显示在颜色条中,即从白色开始。 我错过了什么?

1 个答案:

答案 0 :(得分:1)

" Grays" colormap从白色开始,变为黑色。由于您的标准化,-5为白色,15为黑色。

你真正想要的是vmin=0,vmax=15.的标准化和一个以灰色开头的色彩图:

import matplotlib.colors
norm = matplotlib.colors.Normalize(vmin=0,vmax=15.,clip=False)
cmap = matplotlib.colors.ListedColormap(plt.cm.Greys(np.linspace(0.25,1,10)), "name")