You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在quiver矢量图中添加指定模长的参考矢量作为图例

你用的xarray plot.quiver 是对matplotlib原生quiver接口的封装,直接调用matplotlib自带的quiverkey方法就能实现带模长标注的矢量参考标尺,和你要的目标效果完全匹配。

实现步骤

  • 先把quiver绘图的返回对象存为变量,后续添加图例需要调用这个对象
  • 调用ax.quiverkey配置参考矢量的位置、对应模长、标注文本即可

修改后的完整代码

# 存储quiver绘图对象
q = D.mean(dim='TIME').plot.quiver(
    x="lon",
    y="lat",
    u="SOZOTAUX1", 
    v="SOMETAUY1",
    scale=0.37 # 保持原有比例尺参数不变,保证图例长度和图内矢量匹配
)
ax.coastlines()
ax.axes.get_xaxis().set_visible(True)
ax.axes.get_yaxis().set_visible(True)

# 添加矢量参考图例
ax.quiverkey(
    q,
    X=0.9,          # 图例X轴相对位置(0为轴最左,1为轴最右)
    Y=1.03,         # 图例Y轴相对位置(0为轴最下,1为轴最上,1.03即放在图框外右上角)
    U=0.2,          # 参考矢量对应的模长数值,根据你的数据单位调整
    label='0.2 N/m²',# 图例显示的标注文本,和上面U的数值保持对应
    labelpos='E',   # 标注文本放在箭头的右侧(东方向)
    coordinates='axes',
    fontproperties={'size': 10},
    color='black',
    backgroundcolor='white' # 加白色背景避免和图内元素重叠,和参考图效果一致
)

参数调整说明

  • 原有绘图的scale=0.37参数不要改动,quiverkey会自动匹配该比例尺,保证参考箭头长度和图内同模长的矢量长度完全一致
  • X/Y的数值可以根据你的图幅尺寸微调,避免和坐标轴标签、标题重叠
  • U和label可以根据你的实际需求修改,比如要做0.1 N/m²、0.5 N/m²的标尺直接替换对应值即可
  • 如果需要调整箭头粗细、标注和箭头的间距,可以额外加width、labelsep参数配置,完全匹配参考样式。

内容的提问来源于stack exchange,提问作者Sougata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:09:18