NetCDF文件绘制风矢图仅显示一行箭头的技术求助
问题解决:风矢图仅显示一行的修复
问题根源
你代码里U = data.u10[200]; V = data.v10[200]这一步,直接截取了风场数据的第200个维度切片(对应单一纬度的风场),因此只能画出横贯地图的一行箭头,没有调用全部二维风场数据。
修改后的代码
import xarray as xr import cartopy.crs as ccrs import matplotlib.pyplot as plt # 读取NetCDF数据 data = xr.open_dataset("你的文件路径.nc") # 选择指定时间点的数据 data = data.sel(time='2010-04-14T00:00:00.000000000') # 获取经纬度和完整二维风场数据 X = data.longitude Y = data.latitude U = data.u10 V = data.v10 plt.figure(figsize=(10, 6)) ax = plt.subplot(111, projection=ccrs.PlateCarree()) # 对经纬度隔5个点采样,避免风矢过于密集重叠 ax.quiver(X[::5], Y[::5], U[::5, ::5], V[::5, ::5], color='green') # 添加海岸线,增强地图可读性 ax.coastlines() plt.show()
关键改动说明
- 移除
u10和v10后的[200],保留完整的二维风场数据(纬度×经度结构) - 将
U和V的采样调整为[::5, ::5],适配二维数据的索引逻辑,同时避免箭头过度密集 - 添加
ax.coastlines()绘制海岸线,明确风矢的地理位置参考
内容的提问来源于stack exchange,提问作者Samuel B
相关产品推荐
相关产品推荐

