在 xarray
中绘制 quiver
图时,quiverkey
是用来显示箭头的标尺,它帮助标识图中箭头的大小。当你想要删除 quiverkey
时,可以使用 matplotlib
的 quiver
API 来设置或禁用它。
如果你想要在 xarray
创建的 quiver
图中删除 quiverkey
,你可以通过获取 matplotlib
的 Quiver
对象,然后通过 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()
xarray
的 plot.quiver()
会自动为你绘制箭头,并且默认会添加一个 quiverkey
。quiverkey
,你只需要确保没有调用与 quiverkey
相关的代码(ax.quiverkey()
),或者仅仅不调用它来显示箭头的大小标尺。xarray
中并没有直接的方式来禁用 quiverkey
,但通过不显式调用 quiverkey
,就不会显示它。如果你在 xarray
上下游代码中有显示 quiverkey
的地方,你可以通过简单的参数调整,避免其显示。
如果你需要更精确的控制,比如自定义箭头的大小或密度,可以直接使用 matplotlib
的 quiver
函数,这样能获得更细致的控制:
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
了。