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

问题描述

我正在尝试使用 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.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()

enter image description here

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...