我的数据不会绘制在我的 python cartopy 地图上

My data won't plot over my python cartopy map

我正在尝试使用 python 中的 cartopy 在地图上绘制一些数据。但是,我正在努力让它显示在地图上,有什么想法吗?代码是:

import pandas as pd
from matplotlib import pyplot as plt 
import cartopy.crs as ccrs
import cartopy
import cartopy.feature as cfeature

Results1 = Results.sort_values(by=["Lon", "Lat"])
xvals = Results1["Lon"].unique()
yvals = Results1["Lat"].unique()
zvals = Results1["WS Difference"].values.reshape(len(xvals), len(yvals)).T

plt.figure(figsize=(15,12))

central_lat = 37.5
central_lon = -96

extent = [xvals.min(), xvals.max(), yvals.min(), yvals.max()]
central_lon = np.mean(extent[:2])
central_lat = np.mean(extent[2:])

ax = plt.axes(projection=ccrs.AlbersEqualArea(central_lon, central_lat))
ax.set_extent(extent)
ax.coastlines()
ax.add_feature(cfeature.STATES, linewidth=1.5,edgecolor='black')

cp = ax.contourf(xvals, yvals, zvals,cmap=plt.cm.get_cmap('bwr', 22),levels= [-5,-4.5,-4,-3.5,-3,-2.5,-2,-1.5,-1,-0.5,0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5],zorder=3,alpha=0.6)
cb=plt.colorbar(cp,orientation="horizontal",pad=0.1)
cb.set_label(label='Difference in long-term mean wind speed (%)',size='large')


plt.show()

问题可能与您的投影系统有关。使用 ax.contourf 绘制风速数据时,您应该使用 transform = ccrs.YOURDATAPROJECTION 指定数据的坐标系。您可以查看 here 以获取 Cartopy 支持的投影系统列表。

如果这不起作用,那么您应该提供您的数据样本,以便我们可以尝试重现您的问题。