【python利用shp文件进行绘图白化】,大连e都市(python shp文件的读取和绘图)
0evadmin
编程语言
10
文件名:【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
同类推荐
-

【Python CheckiO 题解】Multiply (Intro),htct328t
查看 -

【Python 标准库学习】时间相关的函数库 — time,三星w299
查看 -

【Python3】【力扣题】268. 丢失的数字,幻想曲手机报价
查看 -

【Python】HackBack(获取暴力破解服务器密码的IP来源),iphone4必备软件(python暴力破解代码)
查看 -

【Python】Locust持续优化:InfluxDB与Grafana实现数据持久化与可视化分析,诺基亚lumia1000
查看 -

【Python】Python爬虫使用代理IP的实现,硕美科g927(python爬取代理ip)
查看 -

【Python】jupyter Linux服务器使用,金立a696手机
查看 -

【Python】np.maximum()和np.minimum()函数详解和示例,htc t328d desire vc
查看 -

【Python】常用的数据类型介绍以及它们之间相互转化,oppo a520
查看