利用Python绘制北京市区划

文摘   科学   2024-07-05 15:00   四川  


利用Python绘制北京市区划

作者:石头人

邮箱:2205455617@qq.com

代码

数据:shp数据

------------------------------------------------------

代码:

# 导入库import matplotlib.pyplot as pltimport numpy as npfrom cartopy.io.shapereader import Readerfrom cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatterimport cartopy.crs as ccrs
# 导入shp文件shp_path = "F:/shp/直辖市/北京市/北京市.shp"shp_reader = Reader(shp_path)
# 创建图形fig = plt.figure(figsize=(15,12)) proj = ccrs.PlateCarree()ax1 = plt.subplot(1, 2, 1, projection=proj)ax2 = plt.subplot(1, 2, 2, projection=proj)
# 设置边界范围extent1 = [115.35, 117.6, 39.4, 41.1]extent2 = [116, 116.7, 39.7, 40.2]ax1.set_extent(extent1, crs = proj)ax2.set_extent(extent2, crs = proj)
# 绘制图形ax1.add_geometries(shp_reader.geometries(), fc="None", ec="k", lw=1.2, crs=proj, zorder=2)ax2.add_geometries(shp_reader.geometries(), fc="None", ec="k", lw=1, crs=proj, zorder=2)ax1.set_xticks(np.arange(116, 118, 1), crs=proj)ax1.set_yticks(np.arange(39.5, extent1[3]+0.3, 0.5), crs=proj)ax1.xaxis.set_major_formatter(LongitudeFormatter())ax1.yaxis.set_major_formatter(LatitudeFormatter())ax2.set_xticks(np.arange(116, 117, 0.5), crs=proj)ax2.set_yticks(np.arange(40, 40.5, 0.5), crs=proj)ax2.xaxis.set_major_formatter(LongitudeFormatter())ax2.yaxis.set_major_formatter(LatitudeFormatter())
# 添加文字plt.rcParams['font.family'] = 'Microsoft YaHei'ax1.text(115.7, 39.7, r'房山区', fontsize=10)ax1.text(116.27, 39.633, r'大兴区', fontsize=10)ax1.text(116.62, 39.75, r'通州区', fontsize=10)ax1.text(116.4, 40.4, r'怀柔区', fontsize=10)ax1.text(115.9, 40.45, r'延庆县', fontsize=10)ax1.text(116, 40.2, r'昌平区', fontsize=10)ax1.text(116.9, 40.5, r'密云县', fontsize=10)ax1.text(116.55, 40.14, r'顺义区', fontsize=10)ax1.text(115.55, 39.98, r'门头沟区', fontsize=10)ax1.text(117, 40.17, r'平谷区', fontsize=10)
ax2.text(116.12, 40.06, r'海淀区', fontsize=10)ax2.text(116.4, 40, r'朝阳区', fontsize=10)ax2.text(116.26, 39.82, r'丰台区', fontsize=10)ax2.text(116.52, 39.93, r'东城区', fontsize=10)ax2.text(116.23, 39.96, r'西城区', fontsize=10)ax2.text(116.13, 39.84, r'石景山区', fontsize=10)ax2.text(116.3, 39.73, r'大兴区', fontsize=10)ax2.text(116.32, 40.1, r'昌平区', fontsize=10)ax2.text(116.52, 40.14, r'顺义区', fontsize=10)ax2.text(116.05, 39.73, r'房山区', fontsize=10)arrow1 = ax2.arrow(116.27,39.95,116.31-116.22,39.92-39.95)arrow2 = ax2.arrow(116.54,39.92,116.42-116.54,39.89-39.92)arrow3 = ax2.arrow(116.175,39.85,116.175-116.175,39.91-39.85)
# 保存图片plt.savefig('E:/Beijing.jpg', dpi=600, bbox_inches='tight')

声明:

欢迎各位亲转载、转发本号的原创作品,可以联系小编(微信号lizhi2412963740)授权。

第八星系人造大气理论爱好者致力于记录自己科研的脚印,致力于与大家一起交流学习进步!

欢迎加入第八星系人气爱交流群:

请备注 昵称-单位/院校-研究方向(为防止“无关”人员混入造成不好影响,群里会定期清理不改备注的成员)




END

后台私信:第八星系

群内每日更新分享数据

进群回复 第八星系

本文编辑|小拾壹



第八星系人造大气理论爱好者
记录与交流python、matlab等科研工具。记录与交流大气科学的学科知识
 最新文章