Cartopy 中正交投影的 Shapefile 绘图问题
Shapefile plotting issue with orthographic projection in Cartopy
与 this question 有关,我正在尝试使用 cartopy 在特定国家/地区着色。复制链接问题中的示例工作正常,但在使用正交投影时失败。包括 MWE 和图像,正如您所看到的,德国最终没有着色。
(Shapefile数据可以从here获取。)
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
_proj = ccrs.Orthographic(0,0)
#_proj = ccrs.PlateCarree()
_deu = list(shpreader.Reader("shapefiles/DEU_adm_shp/DEU_adm0.shp").geometries())
ax = plt.axes(projection=_proj)
ax.coastlines(resolution='10m', color='k', linewidth=1)
ax.add_geometries(_deu, _proj, edgecolor='black', facecolor='gray', alpha=0.5, zorder=10)
plt.show()
您需要在正确的 CRS 中添加几何图形,这肯定不是正交的。 IIRC 它实际上是盘子。试试这个:
ax.add_geometries(_deu, ccrs.PlateCarree(), edgecolor='black',
facecolor='gray', alpha=0.5, zorder=10)
与 this question 有关,我正在尝试使用 cartopy 在特定国家/地区着色。复制链接问题中的示例工作正常,但在使用正交投影时失败。包括 MWE 和图像,正如您所看到的,德国最终没有着色。
(Shapefile数据可以从here获取。)
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
_proj = ccrs.Orthographic(0,0)
#_proj = ccrs.PlateCarree()
_deu = list(shpreader.Reader("shapefiles/DEU_adm_shp/DEU_adm0.shp").geometries())
ax = plt.axes(projection=_proj)
ax.coastlines(resolution='10m', color='k', linewidth=1)
ax.add_geometries(_deu, _proj, edgecolor='black', facecolor='gray', alpha=0.5, zorder=10)
plt.show()
您需要在正确的 CRS 中添加几何图形,这肯定不是正交的。 IIRC 它实际上是盘子。试试这个:
ax.add_geometries(_deu, ccrs.PlateCarree(), edgecolor='black',
facecolor='gray', alpha=0.5, zorder=10)