我想在一个箭袋图中绘制两个矢量场。这已经有效了:对于每个点,有两个不同颜色的矢量。现在问题是,缩放比例不同:例如来自第一个字段(sol
)的向量(1,0)以另一个长度显示为来自字段2(res
)的(1,0)。
如何让箭头以相同比例绘制两个字段,以便res
中的(1,0)在我的图上具有与来自sol
的(1,0)相同的物理长度?
我的代码:
import numpy as np
from matplotlib import pyplot as plt
#res and sol are two vector fields with dimension (ny, nx ,2)
step=3 #not all vectors should be plotted. Just every third one (in x and y direction)
X,Y = np.meshgrid(np.arange(0,nx,step), np.arange(0,ny,step))
Q=plt.quiver(X,Y,sol[::step,::step,0], sol[::step,::step,1], color='r')
W=plt.quiver(X,Y,res[::step,::step,0], res[::step,::step,1], color='b')
plt.quiverkey(Q, 0.4, 0.15, 1, r'text1', labelpos='S')
plt.quiverkey(W, 0.6, 0.15, 1, r'text2', labelpos='S')
plt.show()
答案 0 :(得分:1)
您有两种解决方案:
解决方案2(最快):
Q=plt.quiver(X,Y,sol[::step,::step,0], sol[::step,::step,1], color='r', scale=1)
W=plt.quiver(X,Y,res[::step,::step,0], res[::step,::step,1], color='b', scale=1)
您可以调整比例值,但必须在两个箭头中保持相同的值才能获得预期效果。 This thread有所帮助,但在你的情况下,我认为给每个箭袋提供相同的比例并不是一个过度规范。