Numpy 有没有办法在matplotlib中获取单位向量?

Numpy 有没有办法在matplotlib中获取单位向量?,numpy,matplotlib,Numpy,Matplotlib,我试图用quiver函数来绘制向量场。下面是一个测试用例: import numpy as np import matplotlib.pyplot as plt X, Y = np.mgrid[1:1.5:0.5, 1:1.5:0.5] print(X) print(Y) u = np.ones_like(X) v = np.zeros_like(Y) plt.quiver(X,Y, u, v) plt.axis([0, 3, 0, 3], units='xy', scale=1.) plt.s

我试图用
quiver
函数来绘制向量场。下面是一个测试用例:

import numpy as np
import matplotlib.pyplot as plt
X, Y = np.mgrid[1:1.5:0.5, 1:1.5:0.5]
print(X)
print(Y)
u = np.ones_like(X)
v = np.zeros_like(Y)
plt.quiver(X,Y, u, v)
plt.axis([0, 3, 0, 3], units='xy', scale=1.)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
X, Y = np.mgrid[1:1.5:0.5, 1:1.5:0.5]
print(X)
print(Y)
u = np.ones_like(X)
v = np.zeros_like(Y)
plt.quiver(X,Y, u, v)
plt.axis([0, 3, 0, 3], units='xy', scale=1.)
plt.show()
我试图得到一个长度为1的向量,从
(1,0)到(2,0)
,但我得到的是:

我正试着绕着箭袋函数画向量场。下面是一个测试用例:

import numpy as np
import matplotlib.pyplot as plt
X, Y = np.mgrid[1:1.5:0.5, 1:1.5:0.5]
print(X)
print(Y)
u = np.ones_like(X)
v = np.zeros_like(Y)
plt.quiver(X,Y, u, v)
plt.axis([0, 3, 0, 3], units='xy', scale=1.)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
X, Y = np.mgrid[1:1.5:0.5, 1:1.5:0.5]
print(X)
print(Y)
u = np.ones_like(X)
v = np.zeros_like(Y)
plt.quiver(X,Y, u, v)
plt.axis([0, 3, 0, 3], units='xy', scale=1.)
plt.show()
我试图得到一个长度为1的向量,点从(1,0)到(2,0),但我得到的是:

在此处输入图像描述


我已尝试添加
scale='xy'
选项,但行为没有改变。那么这是如何工作的呢?

第一个有趣的错误是,您将箭袋参数放在了axis调用中

接下来,看看文档,它说

如果比例单位为“x”,则矢量为0.5 x轴单位。到 在x-y平面上绘制向量,u和v的单位与x相同 和y,使用角度='xy',比例单位='xy',比例=1

那么让我们按照文档中的说明去做

import numpy as np
import matplotlib.pyplot as plt
X, Y = np.mgrid[1:1.5:0.5, 1:1.5:0.5]

u = np.ones_like(X)
v = np.zeros_like(Y)
plt.quiver(X,Y, u, v, units='xy', angles='xy', scale_units='xy', scale=1.)
plt.axis([0, 3, 0, 3])
plt.show()
事实上,我们得到了一个单位长的箭头: