如何利用GeoPandas绘制专题图
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下如何利用GeoPandas绘制专题图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!练习使用geopand
千家信息网最后更新 2025年12月02日如何利用GeoPandas绘制专题图
小编给大家分享一下如何利用GeoPandas绘制专题图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
练习使用geopandas绘制专题图,仅供参考。
import pandas as pdimport geopandas as gpimport contextily as ctximport matplotlib.pyplot as pltfrom shapely.geometry import Pointimport matplotlib.patches as mpatchesfrom matplotlib_scalebar.scalebar import ScaleBarchi=gp.read_file("population_data/chi_shp/省.shp").to_crs(epsg=3415)nine_lines = gp.read_file('population_data/chi_shp/chi_nine_dotted_line.shp',encoding='utf-8')tai=gp.read_file("population_data/chi_shp/省.shp")tai=tai[tai['省'].isin(['台**'])].to_crs(epsg=3415)fig=plt.figure(figsize=(8,8)) #设置画布大小ax = plt.gca()ax.set_title(chi.columns.values[1],fontsize=14,loc="left")# 主图绘制chi.plot(ax=ax,color='#E24A33',column="需要绘制的数据列名称",edgecolor='grey',linewidth=0.5,legend=True,legend_kwds={ 'labels':['a','v'], 'loc': 'lower left', 'title': 'Title', 'shadow': False, 'fontsize':8, 'frameon':False, 'prop':{'family': 'Times New Roman', 'weight': 'normal', 'size': 12}})# 添加九**nine_lines.geometry.to_crs(epsg=3415).plot(ax=ax, edgecolor='black', linewidth=2, alpha=0.5)# 添加台**tai.to_crs(epsg=3415).plot(ax=ax,hatch= "////",label= "缺失值",facecolor='lightgrey')# 设置绘图显示范围ax.set(ylim=(-0.3*10**6,4.5*10**6))# 自定义图例文字# get all the legend labels# legend_labels = ax.get_legend().get_texts()# bounds=['q','a']# # replace the legend labels# for bound, legend_label in zip(bounds, legend_labels):# legend_label.set_text(bound)# leg = ax.get_legend()# leg.set_title('Percentage Error (%)',prop={'family': 'Times New Roman', 'weight': 'normal', #'size': 12})# 副图框绘制ax_child = fig.add_axes([0.75, 0.20, 0.15, 0.15]) # left, bottom, width, heightchi.plot(ax=ax_child,color='#E24A33',edgecolor='grey',linewidth=0.5)chi.plot(ax=ax_child,color='#348ABD',edgecolor='grey',linewidth=0.5)ax_child = nine_lines.geometry.to_crs(epsg=3415).plot(ax=ax_child, edgecolor='black', linewidth=2, alpha=0.5)tai.to_crs(epsg=3415).plot(ax=ax_child,hatch= "////",label= "缺失值",facecolor='lightgrey')ax_child.set(xlim=(-0.5*10**6,1.5*10**6),ylim=(-1.5*10**6,0.8*10**6))ax_child.set_xticks([])ax_child.set_yticks([])# 添加省市名称注记# texts=chi.apply(lambda x: ax.annotate(s=x['省'], xy=x.geometry.centroid.coords[0], va='center'# ,fontsize=10,arrowprops=dict(arrow, color='k', lw=0.5)), axis=1)# adjust_text(texts)# 额外图例绘制p1=gp.GeoDataFrame({'geometry':[Point(-1.60*10**6,-0.1*10**6)]})p1.plot(ax=ax,markersize=100,facecolor='lightgrey',hatch= "////")ax.text(-1.54*10**6,-0.15*10**6, "NoData",{'family': 'Times New Roman', 'weight': 'normal', 'size': 12})# 图例操作LegendElement = [ mpatches.Patch(facecolor='#E24A33', linestyle='--', linewidth=1.2, label='1'), mpatches.Patch(facecolor='#348ABD', linestyle='--', linewidth=1.2, label='2') ]ax.legend(handles = LegendElement, loc='lower left',prop={'family': 'Times New Roman', 'weight': 'normal', 'size': 12},frameon=False,shadow=False)# 添加比例尺scalebar = ScaleBar(dx=1*10**-3,units='km',length_fraction=0.1, font_properties={'family': 'Times New Roman', 'weight': 'normal', 'size': 12}, location=8,sep=1,frameon=False)ax.add_artist(scalebar)# 添加指北针x, y, arrow_length = 0.42, 0.09, 0.07ax.annotate('N', xy=(x, y), xytext=(x, y-arrow_length), arrowprops=dict(facecolor='black', width=4, headwidth=7), ha='center', va='center', fontsize=10, xycoords=ax.transAxes)# 添加底图# ctx.add_basemap(ax,crs="epsg:3415",source=ctx.providers.OpenStreetMap.Mapnik(apiKey="*"))# ctx.add_basemap(ax_child,crs="epsg:3415",source=ctx.providers.OpenStreetMap.CH(apiKey="*"))# 设置刻度# ax.set_axis_off() # ax_child.set_axis_off()ax.set_xticks([])ax.set_yticks([])# 保存地图# plt.savefig("filename",dpi=600,bbox_inches='tight')输出图大致如下所示:
以上是"如何利用GeoPandas绘制专题图"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
专题
图例
篇文章
内容
名称
缺失
仅供参考
不怎么
刻度
地图
大小
大部分
指北针
数据
文字
更多
比例
比例尺
画布
省市
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
莱州软件开发技术
深圳市西风网络技术股份
鸟哥服务器架设篇网络配置pdf
数据库中变长指针法
牛差网络技术有限公司
北京常见网络技术维修价格
er图和数据库表什么关系
pve换时间服务器
网络安全运营效率评价
网络安全王营康
网络安全的基本属性范畴
新会企业网络安全产品
为什么数据库都是mysql
苏州共营陈互联网科技有限公司
高中生可不可以做软件开发
ftp服务器日志
数据库的重要性
网络技术哪家学校好
新华服务器位置
软件开发团队成员组成
台州麻将软件开发
php数据库备份类
python能做网络安全
平台网络安全管理制度
网络安全与教育艺术字
福建趋链软件开发有限公司
电子技术应用数据库收录
网络安全防护口袋书
网络安全属于网络工程吗
tp5 显示数据库表