【python利用shp文件进行绘图白化】,大连e都市(python shp文件的读取和绘图)
0evadmin
编程语言
3
文件名:【python利用shp文件进行绘图白化】,大连e都市
【python利用shp文件进行绘图白化】
python白化 白化的作用python实现 白化的作用 参考博文【matlab利用shp文件制作mask白化文件】 python实现 python借助shp文件对绘图进行白化,不需要进行mask文件的制作,可以高效地进行区域绘制 import numpy as npimport cartopy.crs as ccrsimport cartopy.feature as cfimport matplotlib.pyplot as pltimport cartopy.io.shapereader as shpreaderfrom cartopy.mpl.ticker import LatitudeFormatter,LongitudeFormatterfrom matplotlib.path import Pathfrom cartopy.mpl.patch import geos_to_pathplt.rcParams['font.sans-serif']=['KaiTi']shp_path=r'.\省.shp'shp_data=shpreader.Reader(shp_path)fig=plt.figure(figsize=(3,2),dpi=500)ax1=plt.subplot(121,projection=ccrs.PlateCarree())ax2=plt.subplot(122,projection=ccrs.PlateCarree())for i,ax in enumerate([ax1,ax2]):ax.add_geometries(shp_data.geometries(),crs=ccrs.PlateCarree(),edgecolor='k',facecolor='none',lw=0.5)ax.set_extent([70, 140, 0, 55],crs=ccrs.PlateCarree())ax.set_xticks(np.arange(70,140,5))ax.set_yticks(np.arange(0,55,5))# ax.xaxis.set_major_formatter(LongitudeFormatter())# ax.yaxis.set_major_formatter(LatitudeFormatter())ax.tick_params(direction='in',labelsize=3,top=True,right=True,length=2,width=0.5)if i==0:ax.set_title('未白化',fontsize=6)else:ax.set_title('白化后',fontsize=6)########定义绘图数据######################x=np.arange(70, 140, 0.02)y=np.arange(0, 55, 0.02)X,Y=np.meshgrid(x,y)Z=(X-108)**2+(Y-29)**2#######循环画图#########################for i,ax in enumerate([ax1,ax2]):if i==0:ax.contourf(X,Y,Z)else:ac=ax.contourf(X,Y,Z)#######获取path#######################records=shp_data.records()for record in records:if record.attributes["省"] in ["河南省"]:path=Path.make_compound_path(*geos_to_path([record.geometry]))#######白化###########################for collection in ac.collections:collection.set_clip_path(path, transform=ax2.transData)file_nineline = ".\九段线.shp"reader_nineline = shpreader.Reader(file_nineline)ax.add_geometries(reader_nineline.geometries(), crs=ccrs.PlateCarree(), lw=0.5, fc='none')plt.show() 参考:https://mp.weixin.qq.com/s?__biz=MzIxODQxODQ4NQ==&mid=2247484487&idx=1&sn=e654ab7eeeb41a15f816b52b391e93cb&chksm=97eb981da09c110ba06115ed93a4a4450bbe84f8b57b90a9819b6b06f801b533c1b002f14223&scene=21
同类推荐
-

【PyTorch】模型,柯达v570(柯达v570实拍样张)
查看 -

【Python 千题 —— 基础篇】今年几岁啦,vivo s11t
查看 -
![【Python 必会技巧】[i for i in range(1,10)] — 列表解析式,列表中使用 for 循环,phiaton](https://www.0ev.cc/zb_users/cache/thumbs/23e6181118b51d9a0b36fcaeaa9a7ece-80-80-1.jpg)
【Python 必会技巧】[i for i in range(1,10)] — 列表解析式,列表中使用 for 循环,phiaton
查看 -

【Python 必会技巧】使用 join() 方法将序列中的元素拼接成字符串,长虹z1怎么样
查看 -

【Python3 SelectKBest 调用personer出现的错误】,k750i
查看 -

【Python】Python Mako模板使用,武尊神
查看 -

【Python】Python文件转为可执行文件,airx a7
查看 -

【Python】SqlmapAPI调用实现自动化SQL注入安全检测,htc p860
查看 -

【Python】tensorflow学习的个人纪录(2),多普达m700(多普达windows)
查看