Pythongeopandas 中国地图绘制.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python-geopandas 中国地图绘制 geopandas供应了格外便利的read_file()方法用于读取geojson文件,我们直接进行默认投影(WGS84)的绘制,代码如下: file?=?r中国省级地图GS(2021)1719号.geojson nine?=?r九段线GS(2021)1719号.geojson china_main?=?gpd.read_file(file) china_nine?=?gpd.read_file(nine) fig,?ax?=?plt.subplots(figsize=(12,?8),dpi=80) ax?=?china_main.plot(ax=ax) ax?=?china_nine.plot(ax=ax) 可视化结果如下: 我们进行投影转换(epsg=2343)和进行一些简约的设置,代码如下: fig,?ax?=?plt.subplots(figsize=(12,?8),dpi=80) ax?=?china_main.geometry.to_crs(epsg=2343).plot(fc=white,ec=black,ax=ax) ax?=?china_nine.geometry.to_crs(epsg=2343).plot(ec=black,ax=ax) 这里留意to_crs(epsg=2343) 就可以进行投影转换了。 绘图数据操作 接下来,我们将我们要绘制的数据读取、转换并绘制在地图上,数据预览如下: 我们使用如下代码将其转换成具有地理信息的geopandas 格式数据: scattergdf?=?gpd.GeoDataFrame( ????scatter,?geometry=gpd.points_from_xy(scatter.lon,?scatter.lat), ????crs=EPSG:4326) scattergdf.head() 结果如下: 接下来再将其转换成 epsg=2343 投影下的数据: scattergdf_2343?=?scattergdf.to_crs(epsg=2343,?inplace=True) 以上就完成的数据的处理操作了 地图可视化绘制 直接给出绘图代码,然后再进行解释。次要代码如下: fig,?ax?=?plt.subplots(figsize=(8,5),dpi=200,) plt.rcParams[font.family]?=?[Times?New?Roman] ax?=?china_main.geometry.to_crs(epsg=2343).plot(fc=white,ec=black,linewidth=.8,ax=ax) ax?=?china_nine.geometry.to_crs(epsg=2343).plot(color=gray,linewidth=.9,ax=ax) for?loc,?size,class_name?in?zip(scattergdf_2343.geometry.representative_point(),\ ????????????????????????????????scattergdf_2343[data],scattergdf_2343[class]): ????ax.scatter(loc.x,loc.y,s=10*size,fc=class_color[class_name],ec=black,lw=.5,zorder=2)? #添加刻度线 for?spine?in?[top,left,bottom,right]: ????ax.spines[spine].set_color(none) ax.set_xlim(china_nine_2343.geometry[0].x-500000,?china_nine_2343.geometry[1].x) ax.set_ylim(china_nine_2343.geometry[0].y,?china_nine_2343.geometry[1].y) ax.set_xticks([]) ax.set_yticks([]) #单独绘制图例散点 ax.scatter([],?[],?c=#E21C21,?s=30,??label=cluster1,ec=black,lw=.5)? ax.scatter([],?[],?c=#3A7CB5,?s=30,??label=cluster2,ec=black,lw=.5) ax.scatter([],?[],?c=#51AE4F,?s=30,??label=cluster3,ec=black,lw=.5) ax.scatter([],?[],?c=white,?s=1*10,label=1,?e

文档评论(0)

bob157641554 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档