Python 如何在Matplotlib中设置颜色栏范围?

Python 如何在Matplotlib中设置颜色栏范围?,python,matplotlib,range,colorbar,Python,Matplotlib,Range,Colorbar,我用Matplotlib中的quiver函数绘制了不同的向量场 plt.figure() x, y = numpy.mgrid[-x_dim/2:x_dim/2:x_steps*1j, -y_dim/2:y_dim/2:y_steps*1j] m = numpy.sqrt(numpy.power(vector_field_x, 2) + numpy.power(vector_field_y, 2)) fig = plt.quiver(x, y, vector_field_x, vector

我用Matplotlib中的
quiver
函数绘制了不同的向量场

plt.figure()

x, y = numpy.mgrid[-x_dim/2:x_dim/2:x_steps*1j, -y_dim/2:y_dim/2:y_steps*1j]

m = numpy.sqrt(numpy.power(vector_field_x, 2) + numpy.power(vector_field_y, 2))

fig = plt.quiver(x, y, vector_field_x, vector_field_y, m)
cb = plt.colorbar(fig)

# Add some margin
l, r, b, t = plt.axis()
dx, dy = r-l, t-b
plt.axis([l-0.1*dx, r+0.1*dx, b-0.1*dy, t+0.1*dy])

plt.savefig(file_path + '.png', dpi=Vc.dpi)
plt.close()
它们都是相关的,我需要能够比较它们

如果我只是绘制它们,我会得到如下图表:

可以看出,由于它们的最大震级不同,它们以不同的比例表示(使用不同的边界)。因此,我的第一种方法是将它们一起标准化(即,考虑所有向量场的最大幅度)

在那之后,我只画了向量,比例有点变化。但是,边界仍然根据每个地块的最小值和最大值进行调整

然后,我试图补充:

cb.set_clim(vmin=0, vmax=1)
使用此代码,我得到了如下颜色条:

也就是说,我的颜色栏范围是固定的,从0到1,所以橙色在所有绘图中都是0.8。这正是我想要的。但是,我想绘制“完整”颜色栏,表示范围为0到1

在不创建自定义颜色栏的情况下,这是可能的吗


谢谢。

quiver
有一个可选参数
clim

fig = plt.quiver(x, y, vector_field_x, vector_field_y, m, clim=[-2,2])

这应该有效。:)

你试过fig.colorbar()吗?这个链接可能会有帮助嗨,@Falko。我对contour也有同样的问题。我尝试使用clim,但没有成功。你知道这个案子的解决办法吗?非常感谢。