Я пытаюсь установить абсолютную quiverkey
длину стрелки, соответствующую определенной длине стрелки моих quiver
данных.Может ли кто-нибудь объяснить мне, как работает аргумент quiverkey
U
или, по крайней мере, как его масштабировать для моих нужд?
Фон
Версия Python: 3.6.5
версия matplotlib: 3.0.0
Минимальный пример
Я немного изменил пример с: https://matplotlib.org/gallery/images_contours_and_fields/quiver_simple_demo.html#sphx-glr-gallery-images-contours-and-fields-quiver-simple-demo-py
import matplotlib.pyplot as plt
import numpy as np
X = np.arange(-10, 11, 2)
Y = np.arange(-10, 11, 2)
U, V = np.meshgrid(X, Y)
# calculate length of each arrow
data_arrow_length = np.abs(np.sqrt(np.square(U[:]) + np.square(U[:])))
# set displayed arrow length for longest arrow
displayed_arrow_length = 2
# calculate scale factor for quiver
scale_factor = np.max(data_arrow_length)/displayed_arrow_length
# mysterious arrow length for quiverkey
quiverkey_length = 200
fig, ax = plt.subplots()
q = ax.quiver(X, Y, U, V, pivot='middle',
units='xy', width=0.1,
scale=scale_factor, scale_units='xy')
ax.quiverkey(q, X=0.3, Y=1.1, U=quiverkey_length,
label='Quiver key, length = 10', labelpos='E')
plt.show()
Таким образом, я могу управлять максимальной длиной стрелки, отображаемой с помощью quiver
, используя displayed_arrow_length
.В этом примере максимальная data_arrow_length
составляет прибл.14 и отображается с длиной стрелки 2 на основе данных xy.
Проблема
Если я запусту приведенный выше пример, я получу:

Однако, если я увеличу окно рисунка до максимума, я получу:

quiverkey
длина стрелки не масштабируется с моими quiver
стрелками, и мне пришлось использовать случайное большое число, чтобы quiverkey_length
появилось в целом.
Вопрос
Iхотел бы установить длину стрелки quiverkey
на конкретное значение, отображаемое с помощью quiver
, например, 10. Однако он не масштабируется с данными вообще.Как мне этого добиться?