Как отключить масштабирование колчана? - PullRequest
0 голосов
/ 26 ноября 2018

Функция 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 голосов
/ 26 ноября 2018

В документации о колчане указано

Чтобы построить векторы в плоскости xy, когда u и v имеют те же единицы, что и x и y, используйте angles='xy', scale_units='xy', scale=1.

Обратите внимание, что u и v понимаются относительно позиции.Следовательно, вам нужно сначала взять разницу.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...