如何关闭matplotlib颤抖缩放?

时间:2018-11-26 16:02:19

标签: matplotlib

matplotlib.pyplot.quiver函数获取一组“原点”点和一组“目标”点,并绘制从“原点”点开始朝着“目标”点方向的箭头束。但是,有一个比例因子,因此箭头不一定会在“目标”点处结束,而只是指向该方向。

例如

import matplotlib.pyplot as plt
import numpy as np

pts = np.array([[1, 2], [3, 4]])
end_pts = np.array([[2, 4], [6, 8]])

plt.quiver(pts[:,0], pts[:,1], end_pts[:,0], end_pts[:,1])

the_picture

请注意,左下角的矢量从(1,2)(我想要)开始,但没有以(2,4)结束。这由scale函数的quiver参数控制,该参数可使箭头变长或变短。如何使箭头精确到(2,4)?

1 个答案:

答案 0 :(得分:1)

quiver documentation状态

  

要在x-y平面上绘制矢量(其中u和v与x和y的单位相同),请使用angles='xy', scale_units='xy', scale=1

但是请注意,uv是相对于该位置理解的。因此,您需要先考虑差异。

import matplotlib.pyplot as plt
import numpy as np

pts = np.array([[1, 2], [3, 4]])
end_pts = np.array([[2, 4], [6, 8]])
diff = end_pts - pts

plt.quiver(pts[:,0], pts[:,1], diff[:,0], diff[:,1],
           angles='xy', scale_units='xy', scale=1.)

plt.show()

enter image description here