Как я могу скрыть валы matplotlib.quiver () - PullRequest
1 голос
/ 17 марта 2019

Я хотел бы скрыть стержень стрелок, нанесенных matplotlib.pyplot.quiver () . Кажется, что нет никакого параметра для полного удаления валов, так как размеры наконечника стрелы пропорциональны размерам вала.

Как можно удалить или скрыть валы, чтобы стрелка была единственным видимым компонентом?

import matplotlib.pyplot as plt
u = v = 2
plt.quiver(0, 0, u, v, angles='xy', scale_units='xy', scale=1)
plt.axis([-u-1, u+1, v-1, v+1])

snippet output

1 Ответ

0 голосов
/ 17 марта 2019

Один из подходов - установить размер стрелки headaxislength и headlength таким образом, чтобы головка полностью закрывала вал.Длины здесь пропорциональны xy, длинам вектора, поэтому мы должны масштабировать 1. / width (обратная пропорциональность) по длине вектора, np.sqrt(u**2 + v**2)

import matplotlib.pyplot as plt
import numpy as np
u = v = 2
length = np.sqrt(u**2 + v**2)
width=0.005
hal = hl = 1. / width * length
plt.quiver(0, 0, u, v, angles='xy', scale_units='xy', scale=1, 
           headwidth=hl,
           headaxislength=hal,
           headlength=hl,
           width=width)
plt.axis([-2, u+1, -2, v+1])

enter image description here

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