Python 用cartopy绘制特定国家的地图?

Python 用cartopy绘制特定国家的地图?,python,geo,cartopy,Python,Geo,Cartopy,我在这里试过这个例子,效果很好。但我如何专注于另一个国家,即只展示德国 此示例的源代码 我在extend()方法上尝试了一些坐标,但我没能让它看起来像美国地图。或者我必须修改形状文件吗?使用位于的全局管理区域数据集,只需下载德国数据集并使用cartopy的shapereader(与链接示例中的方式相同) 一个简短的独立示例: import cartopy.crs as ccrs import cartopy.io.shapereader as shpreader import matplot

我在这里试过这个例子,效果很好。但我如何专注于另一个国家,即只展示德国

此示例的源代码


我在extend()方法上尝试了一些坐标,但我没能让它看起来像美国地图。或者我必须修改形状文件吗?

使用位于的全局管理区域数据集,只需下载德国数据集并使用cartopy的shapereader(与链接示例中的方式相同)

一个简短的独立示例:

import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
import matplotlib.pyplot as plt

# Downloaded from http://biogeo.ucdavis.edu/data/gadm2/shp/DEU_adm.zip
fname = '/downloads/DEU/DEU_adm1.shp'

adm1_shapes = list(shpreader.Reader(fname).geometries())

ax = plt.axes(projection=ccrs.PlateCarree())

plt.title('Deutschland')
ax.coastlines(resolution='10m')

ax.add_geometries(adm1_shapes, ccrs.PlateCarree(),
                  edgecolor='black', facecolor='gray', alpha=0.5)

ax.set_extent([4, 16, 47, 56], ccrs.PlateCarree())

plt.show()


HTH

让我用来自的数据举一个例子。因此,这是有可能扩大到任何国家

从cartopy.io导入shapereader
将numpy作为np导入
进口土工画板
将matplotlib.pyplot作为plt导入
将cartopy.crs作为CCR导入
#获取自然地球数据(http://www.naturalearthdata.com/)
#获取国家边界
分辨率='10m'
类别=‘文化’
名称='admin\u 0\u countries'
shpfilename=shapereader.natural\u earth(分辨率、类别、名称)
#使用geopandas读取shapefile
df=geopandas.read_文件(shpfilename)
#阅读德国边境
poly=df.loc[df['ADMIN']=='Germany']['geometry'].值[0]
ax=plt.轴(投影=ccrs.PlateCarree())
ax.add_几何体(poly,crs=ccrs.PlateCarree(),facecolor='none',
edgecolor='0.5')
最大设置范围([5,16,46.5,56],crs=ccrs.PlateCarree())
这将产生以下数字:


Cartopy的创作者自己给出了一个答案——我一定很喜欢堆栈溢出。有没有办法用Cartopy标记国家名称?如果我想合并德国和荷兰呢。我是否可以合并形状文件以显示两个国家,并屏蔽其余国家?从cartopy 0.18开始,我必须更改
ax。将几何图形(多边形…)
添加到
ax。添加几何图形([poly]…)