python 基于shp文件绘制完整中国地图(matplotlib,cartopy)
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
# 设置地图的尺寸和分辨率
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
# 读取中国地图的shp文件
china_shp = shpreader.Reader('./maps/china.shp')
# 遍历shp文件中的所有记录,并绘制
for geom in china_shp.geometries():
ax.add_geometries([geom], crs=ccrs.PlateCarree(), facecolor='lightblue', edgecolor='black')
# 设置坐标轴的格式
ax.set_xticks(range(-180, 181, 60))
ax.set_yticks(range(-90, 91, 30))
ax.xaxis.set_major_formatter(LongitudeFormatter())
ax.yaxis.set_major_formatter(LatitudeFormatter())
# 设置地图的范围
ax.set_xlim(-180, 180)
ax.set_ylim(-90, 90)
ax.set_global()
# 显示图例
plt.legend(loc='upper left')
# 展示地图
plt.show()
这段代码使用了Cartopy库和Matplotlib库来绘制一个简化版的全国地图。首先创建一个新的Figure和Axes实例,并设置投影为ccrs.PlateCarree()。然后读取中国地图的shp文件,并使用add\_geometries()函数将地图多边形添加到Axes实例中。最后设置坐标轴的格式,限定范围,并展示最终的地图。
评论已关闭