找回密码
 会员注册
查看: 22|回复: 0

python基于shp文件绘制完整中国地图(matplotlib,cartopy)

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
71916
发表于 2024-9-7 00:30:27 | 显示全部楼层 |阅读模式
思路:中国地图画两遍,截取响相应经纬度范围的区域难点:中国海岸线以及南海岛屿等数据的准确性解决思路:在阿里云上获取中国地图的json文件,离线转成shp文件(网上有教程,也可留言获取)效果图:importmatplotlib.pyplotaspltimportcartopy.crsasccrsfromcartopy.ioimportshapereaderimportcartopy.featureascfeature#新建图层fig=plt.figure(figsize=(15,15))ax=fig.add_subplot(111,projection=ccrs.PlateCarree())#绘制中国地图shp_path=r'D:\ERA5\shp\中国\中国.shp'reader=shapereader.Reader(shp_path)forrecordinreader.records():ax.add_geometries([record.geometry],ccrs.PlateCarree(),facecolor='none')ax.add_feature(cfeature.RIVERS.with_scale('50m'))#添加河流,湖泊ax.add_feature(cfeature.LAKES.with_scale('50m'))ax.set_extent([73,135,13,55])#绘制南海子图sub_ax=fig.add_axes([0.764,0.22,0.15,0.15],projection=ccrs.PlateCarree())forrecordinreader.records():sub_ax.add_geometries([record.geometry],ccrs.PlateCarree(),facecolor='none')sub_ax.set_extent([105,125,0,25],crs=ccrs.PlateCarree())plt.show()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 19:05 , Processed in 1.389706 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表