作者:第八星系欣悦
邮箱: Caojuicy@163.com
|绘制西南地区地图
Python
西南地区 Southwest China (SWC)
对于我国西南地区有两种不同划分方式,
这里我们根据研究区域和王等人的文章(https://doi.org/10.3878/AOSL20150043.)
将西南地区划分为包括四川省、云南省、重庆市、贵州省、广西壮族自治区共五个省市区(22°N-32°N、98°E-110°E)
下面是python的绘制代码:
import netCDF4 as nc
import numpy as np
import cartopy.crs as ccrs
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
import matplotlib.pyplot as plt
from cartopy.io.shapereader import Reader
import cartopy.feature as cfeature
import cmaps
shap = Reader('D:/xinandata/XI_NAN/xinan.shp').geometries()
xinan = cfeature.ShapelyFeature(shap, crs=ccrs.PlateCarree(), edgecolor='k', facecolor='none') # 读取地图文件
fig = plt.figure(figsize=(12, 8), dpi=300) # 设置画布
# 格点17*18
lat = np.arange(20, 35, 0.5)
lon = np.arange(95, 112.5, 0.625) # 经纬度设置格点范围和间隔
ax = fig.add_subplot(111, projection=ccrs.PlateCarree())
ax.add_feature(xinan)
lon_formatter = LongitudeFormatter()
lat_formatter = LatitudeFormatter()
ax.set_extent([95, 112.5, 20, 35], crs=ccrs.PlateCarree()) # 设置经纬度矩形范围
ax.set_xticks([95, 100, 105, 110], crs=ccrs.PlateCarree()) # 设置x轴刻度
ax.set_yticks([20, 25, 30, 35], crs=ccrs.PlateCarree())
ax.xaxis.set_major_formatter(lon_formatter)
ax.yaxis.set_major_formatter(lat_formatter)
plt.subplots_adjust(right=0.8)
plt.show()
# plt.show()
plt.savefig('xinan.png')
出图效果:
如以上内容存在问题,欢迎大家批评指正~
后台发送:第八星系
即可加入第八星系交流群
请勿回复第八星系以外的字词哦~
本文编辑:周游