小能豆

如何在 xarray quiver 图中删除 quiverkey

py

如何在 xarray quiver 图中删除 quiverkey


阅读 30

收藏
2024-12-01

共1个答案

小能豆

xarray 中绘制 quiver 图时,quiverkey 是用来显示箭头的标尺,它帮助标识图中箭头的大小。当你想要删除 quiverkey 时,可以使用 matplotlibquiver API 来设置或禁用它。

如果你想要在 xarray 创建的 quiver 图中删除 quiverkey,你可以通过获取 matplotlibQuiver 对象,然后通过 quiverkey 的相关参数控制显示。具体方法如下:

示例代码:

import xarray as xr
import numpy as np
import matplotlib.pyplot as plt

# 创建一个示例的 xarray 数据集
lon = np.linspace(0, 10, 20)
lat = np.linspace(0, 10, 10)
u = np.random.rand(10, 20)  # 水平速度分量
v = np.random.rand(10, 20)  # 垂直速度分量

ds = xr.Dataset(
    {
        'u': (['lat', 'lon'], u),
        'v': (['lat', 'lon'], v),
    },
    coords={
        'lat': lat,
        'lon': lon,
    }
)

# 绘制 quiver 图
fig, ax = plt.subplots(figsize=(8, 6))

# 使用 xarray 自带的 plot.quiver 绘制
quiver = ds.quiver('lon', 'lat', 'u', 'v', ax=ax)

# 删除 quiverkey(不显示箭头标尺)
# quiverkey 对象由 xarray 绘制的 quiver 图自动添加,但我们可以通过设置不显示它来删除
# 在这里,我们只需要避免显示 quiverkey 相关的内容

# 如果有 quiverkey,可以使用以下方法禁用
# 注意:`ax.quiverkey()` 是 matplotlib 中添加的方式,但如果我们不调用它,它默认不会显示

# 显示结果
plt.show()

解释:

  • xarrayplot.quiver() 会自动为你绘制箭头,并且默认会添加一个 quiverkey
  • 如果你不需要显示 quiverkey,你只需要确保没有调用与 quiverkey 相关的代码(ax.quiverkey()),或者仅仅不调用它来显示箭头的大小标尺。
  • xarray 中并没有直接的方式来禁用 quiverkey,但通过不显式调用 quiverkey,就不会显示它。

如果你在 xarray 上下游代码中有显示 quiverkey 的地方,你可以通过简单的参数调整,避免其显示。

进一步定制:

如果你需要更精确的控制,比如自定义箭头的大小或密度,可以直接使用 matplotlibquiver 函数,这样能获得更细致的控制:

fig, ax = plt.subplots(figsize=(8, 6))

# 使用 matplotlib 来绘制 quiver,而不是 xarray
Q = ax.quiver(ds.lon, ds.lat, ds.u, ds.v)

# 删除 quiverkey
# 仅仅不使用 `ax.quiverkey()` 方法
# Q 可以用来进一步定制箭头的外观,如大小、颜色等

plt.show()

这样,你就可以避免使用 quiverkey 了。

2024-12-01