如何在Matplotlib中设置色条范围?

2024-04-27 13:20:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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()

它们都是相关的,我需要能够比较它们。

如果我画出来,我会得到这样的图表:

enter image description hereenter image description here

可以看出,由于它们的最大震级不同,它们以不同的尺度(使用不同的边界)表示。所以,我的第一个方法是将它们全部规范化(即,计算所有向量场的最大震级)。

在那之后,我只绘制矢量图,比例尺有点变化。但是,边界仍然根据每个图的最小值和最大值进行调整。

然后,我试图补充:

cb.set_clim(vmin=0, vmax=1)

有了这个密码,我就有了这样的彩条:

enter image description here

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

在不创建自定义颜色条的情况下,是否可以这样做?

谢谢你。


Tags: numpyfieldfig绘制pltstepscbpower