Python 如何在matplotlib中使用xy数据设置quiverkey长度缩放?
我正在尝试设置绝对Python 如何在matplotlib中使用xy数据设置quiverkey长度缩放?,python,matplotlib,Python,Matplotlib,我正在尝试设置绝对quiver键箭头长度,以匹配我的quiver数据的特定箭头长度。谁能告诉我quiverkey参数U是如何工作的,或者至少是如何根据我的需要调整它 背景 Python版本:3.6.5 matplotlib版本:3.0.0 最小示例 我稍微修改了以下示例: 通过这种方式,我可以使用显示的箭头长度控制箭袋显示的最大箭头长度。在本例中,最大数据箭头长度约为14,并且根据xy数据以2的箭头长度显示 问题 如果我运行上述示例,我会得到: 但是,如果我最大化图形窗口,我会得到: qui
quiver键
箭头长度,以匹配我的quiver
数据的特定箭头长度。谁能告诉我quiverkey
参数U
是如何工作的,或者至少是如何根据我的需要调整它
背景
Python版本:3.6.5
matplotlib版本:3.0.0
最小示例
我稍微修改了以下示例:
通过这种方式,我可以使用显示的箭头长度
控制箭袋显示的最大箭头长度。在本例中,最大数据箭头长度约为14,并且根据xy数据以2的箭头长度显示
问题
如果我运行上述示例,我会得到:
但是,如果我最大化图形窗口,我会得到:
quiverkey
箭头长度与我的quiver
箭头不匹配,我必须使用一个随机的高数字来显示quiverkey\u长度
问题
我想将quiverkey
箭头长度设置为特定值,如quiver
所示,例如10。然而,它似乎根本不随数据的变化而变化。如何实现这一点?这似乎是matplotlib中的一个错误,现已修复
交叉引用:
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()