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

使用xarray绘制Quiverplot时右上角出现数字标记的问题咨询

xarray quiver绘图右上角异常带数字点的解决方法

问题描述

使用xarray的Dataset调用plot.quiver()绘制矢量图时,绘图区域外的右上角会出现一个带数字的异常点。经排查,该问题与数据内容无关,排除cartopy坐标轴、陆地特征、图层、网格线等因素后,最简代码仍可复现该问题。

复现代码

import xarray as xr
import matplotlib.pyplot as plt
import os

# 创建测试Dataset
U = [[1,2],[3,4]]
V = [[3,4],[1,2]]
latitude = [[30,31],[29,30]]
longitude = [[-5,-6],[-4,-8]]
Along = [1,2]
Across = [6,7]
B = xr.Dataset(
    data_vars=dict(U=(['Along','Across'], U), V=(['Along','Across'], V)),
    coords=dict(
        latitude=(['Along','Across'], latitude),
        longitude=(['Along','Across'], longitude),
        Along=(Along),
        Across=(Across)
    )
)

# 绘图并保存,异常点在保存的图片中更明显
B.plot.quiver(x='longitude', y='latitude', u='U', v='V')
plt.savefig(os.path.join(r'S:\System files\OneDrive\Pulpit', 'output.png'), dpi=150, pad_inches=0.1)

问题原因

这个带数字的点并非异常bug,而是matplotlib quiver默认生成的箭标图例(quiver key),默认位置设置在绘图区域外的右上角,因此看起来像无关的异常点。

解决方法

有两种常用处理方式:

  • 调整图例位置:将箭标图例放到绘图区域内,避免超出显示范围
    B.plot.quiver(
        x='longitude', y='latitude', u='U', v='V',
        quiver_kw={'key': {'loc': 'lower left'}}  # 可替换为其他合法位置,如'upper right'
    )
    
  • 隐藏箭标图例:如果不需要该图例,直接关闭显示
    B.plot.quiver(
        x='longitude', y='latitude', u='U', v='V',
        quiver_kw={'key': None}
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:34:58