【可视化】绘制中国标准行政区划地图(2024版)
创作时间:
作者:
@小白创作中心
【可视化】绘制中国标准行政区划地图(2024版)
引用
CSDN
1.
https://m.blog.csdn.net/m0_38065162/article/details/141606151
在科研投稿论文过程中,多数期刊杂志要求我们制作涉及国界的图件,必须使用自然资源部地图技术审查中心发布的标准地图底图。凡涉国界图件(国内部分地区、全国、世界部分地区、全球)必须使用自然资源部标准地图服务系统或国家测绘局地理信息局标准地图底图,所用底图边界要完全无修改(包括南海诸岛位置)。本文结合Geopandas和Cartopy两个强大的地理数据处理库进行展示。
相关库简介
Cartopy是一个用于地理数据处理和可视化的Python库,专门设计来处理地图投影和地理空间数据的绘制。它是基于Matplotlib的高层次接口,主要用于创建地理参考图形和地图。Cartopy提供了丰富的功能来处理不同的地图投影、地理参考数据的转换,以及与流行的地理信息系统(GIS)数据格式的集成。
代码实现
导入相关库
# -*- coding: UTF-8 -*-
# 导入相关库
import numpy as np
import xarray as xr
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from copy import copy
from cartopy.mpl.gridliner import LATITUDE_FORMATTER, LONGITUDE_FORMATTER
import shapely.geometry as sgeom
加载数据
国家地理信息公共服务平台(天地图)新增了矢量地图底图下载服务,用户可以根据需求下载不同审图号的标准地图矢量底图。矢量地图相较于像素地图,具有更高的清晰度和可编辑性,可以无限放大而不失真,更适合进行地图编辑和二次创作。获取方式见-天地图。
读取中国区域的省、市、县的区划信息:
# 读取省级行政区划
province = gpd.read_file('中国_省.geojson')
# 读取市级行政区划
city = gpd.read_file('中国_市.geojson')
# 读取县级行政区划
county = gpd.read_file('中国_县.geojson')
市级行政区划展示
# 设置地图投影
proj = ccrs.LambertConformal(central_longitude=105, central_latitude=90,standard_parallels=(25, 47))
# 设置图片大小
fig = plt.figure(figsize=[10, 8],frameon=True)
# Set projection and plot the main figure
ax = fig.add_axes([0.08, 0.05, 0.8, 0.94], projection=proj)
# 设置地图范围
ax.set_extent([80, 130, 15, 55],crs=ccrs.PlateCarree())
# 添加地理要素
ax.add_geometries(city.geometry,
crs=ccrs.PlateCarree(),
edgecolor='k',
facecolor='none',
zorder=1)
# 添加海洋、陆地、河流、湖泊
ax.add_feature(cfeature.OCEAN.with_scale('50m'),zorder=0)
ax.add_feature(cfeature.LAND.with_scale('50m'),zorder=0)
ax.add_feature(cfeature.RIVERS.with_scale('50m'),zorder=0)
ax.add_feature(cfeature.LAKES.with_scale('50m'),zorder=0)
# 设置并添加经纬度标签
xticks = [55, 65, 75, 85, 95, 105, 115, 125, 135, 145, 155, 165]
yticks = [0 , 5 , 10, 15, 20, 25 , 30 , 35 , 40 , 45 , 50 , 55 , 60 , 65]
gl = ax.gridlines(xlocs=xticks,
ylocs=yticks,
draw_labels=True,
x_inline=False,
y_inline=False,
linewidth=1,
color='dimgrey',
alpha=0.5,
linestyle='--')
gl.top_labels = False
gl.right_labels = False
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
# 添加南海附图
sub_ax = fig.add_axes([0.75, 0.102, 0.15, 0.2],
projection=ccrs.LambertConformal(central_latitude=90,
central_longitude=105))
# 添加海洋、陆地、河流、湖泊
sub_ax.add_feature(cfeature.OCEAN.with_scale('50m'))
sub_ax.add_feature(cfeature.LAND.with_scale('50m'))
sub_ax.add_feature(cfeature.RIVERS.with_scale('50m'))
sub_ax.add_feature(cfeature.LAKES.with_scale('50m'))
# 设置南海附图范围
sub_ax.set_extent([106, 120, 2, 24], crs=ccrs.PlateCarree())
sub_ax.add_geometries(city.geometry, crs=ccrs.PlateCarree(), edgecolor='k', facecolor='none')
plt.show()
结果展示
市级行政区划底图
作为展示,本文只展示了市级行政区划的底图,大家可以替换数据进行省、县级的行政区划展示。
热门推荐
成绩排名不高的话,要不要写在简历上
青龙VS朱雀:东方守护神的神秘力量
行业观察:青岛老字号的"倚老"与"卖新"
财务报表分析:母公司还是合并报表,如何选择?
家庭版牛肉面简单做法,简单几步做出地道味
合同未到期想领失业金?离职报告这样写!
持续地努力 才会有持续的收获:挑战 奋斗与成长
百货业报告:政策支持提振消费 企业发力调改升级
如何减腹部脂肪 最有效的5个腹部减肥方法
如何理解市场中的技术分析工具?这些工具如何帮助投资者识别投资机会?
什么是 IP 地址? 它的工作原理是什么?
自动驾驶迎重大政策利好,11只概念股获公募+社保共同持有
宝宝放心食用的奶粉应具备哪些特点?如何挑选具备这些特点 ...
劳动部工作总结撰写指南:结构、量化与前瞻规划
牙齿矫正期间,如何进行正确地刷牙?
沧桑与荣光:贝尔实验室的百年兴衰
一篇具身智能的最新全面综述!(上)
为啥有人跑农村收“废手机”?收回来干些什么?看完你就明白了
全面解析:区块链币本位是什么意思
“犬”与“狗”:一字之差的文化内涵
眼睛皮老跳是有什么问题吗
一生一定要去一次-最浪漫的古城-鳳凰古城-景點介紹
雷军:AI换脸拟声需提前立法,网络造谣维权难
一颗改变了世界的芯片:英特尔8008微处理器深度解析
中国著名易经大师谢咏语录~ 谦受益滿招损的处世哲学
我们民族的龟鳖图腾崇拜
如何计算公积金提前还款的金额?公积金提前还款的规则和影响有哪些?
希腊神话对移民影响雅典学校的文化课程
一般后背包大小这样选!高效挑选适合你的旅行后背包完整攻略
总是浑身没劲是怎么回事?这些情况都要小心……