我需要做一系列矢量绘图。我可以使用matplotlib的颤抖例程获取任意数量的绘图。关键是,颤动器会自动缩放每个图,但是我需要每个图中的向量都代表相同的比例。例如,如果在一个绘图中以1cm的矢量表示10 km / hr,则在所有绘图中以1cm的矢量表示10km / hr。(我真的不在乎矢量是否具体为1cm。这只是一个例子。)我想我可以通过分别为每个图调整scale参数来实现这一点。但这似乎不起作用。
例如,我在第一个图中找到最大速度mxs1
,然后对每个图执行类似的操作
mxspd = np.max(speed[n]) pylab.quiver(x,y,vx[n],vy[n],scale=mxs1/mxspd)
但这不能充分调整向量的长度。例如,在我尝试的情况下,mxspd
大约是的一半mxs1
,因此绘图中的向量的n
长度应大约是第一个绘图中向量的一半。但是,两个图中的向量的长度几乎相同。
import matplotlib import numpy as np import matplotlib.pyplot as plt x, y = np.mgrid[0:20, 0:25] u = np.sin(2 *x * np.pi / 20) v = np.cos(2 * y * np.pi / 25) fig, (ax_l, ax_r) = plt.subplots(1, 2, figsize=(8, 4)) ax_r.quiver(x, y, u, v, scale=5, scale_units='inches') ax_l.quiver(x, y, 2*u, 2*v, scale=5, scale_units='inches') ax_l.set_title('2x') ax_r.set_title('1x')
请参阅文档,以获取有关scale
和的解释scale_units
。