我试图了解NumPy模块中的箭头功能是如何工作的.据推测,它允许以图形方式显示两个阵列的值,例如水平和垂直速度.我有以下非常简单的例子,但我只是为了看看你是否可以帮助我找出我做得不好的事情来展示它:
x = np.linspace(0,1,11) y = np.linspace(1,0,11) u = v = np.zeros((11,11)) u[5,5] = 0.2 plt.quiver(x, y, u, v)
代码生成下图:
如您所见,箭头不是箭头,而是一条线,它长于0.2.我的目的是得到一个长度为0.2的箭头,我想我可以用它来做quiver
.可能吗?或者我应该更好地使用另一个命令?
matplotlib箭袋自动缩放.将比例设置为1
在x和y中得到0.2个单位:
x = np.linspace(0,1,11) y = np.linspace(1,0,11) u = v = np.zeros((11,11)) u[5,5] = 0.2 plt.quiver(x, y, u, v, scale=1)
如果未设置scale
,matplotlib将根据平均向量长度和向量数使用自动缩放算法.由于你只有一个长度大于零的向量,它变得非常大.添加更多矢量使箭头连续变小.
要使箭头具有相同的x和y扩展名,需要进行一些调整:
x = np.linspace(0,1,11) y = np.linspace(1,0,11) u = v = np.zeros((11,11)) u[5,5] = 0.2 plt.axis('equal') plt.quiver(x, y, u, v, scale=1, units='xy')
两个轴必须相等,并且需要将单位设置为xy
.