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]…)