- 积分
- 161
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2021-10-8
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
import xarray as xr
import numpy as np
import cartopy
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import matplotlib
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
# 设置全局字体为新罗马
plt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = ['Times New Roman']
# 设置全局字体权重为normal
plt.rcParams['font.weight'] = 'normal'
# 设置全局字体大小
matplotlib.rcParams['font.size'] = 19 # 设置全局字体大小为12
# 载入数据
data_path = r'D:/pythonProjec/19.nc' # 替换为您的文件路径
ds = xr.open_dataset(data_path)
#选择时间、层次、变量
time = '2024-05-19T10:00:00'
level_1 = 500
ds_selected = ds.sel(time=time,level=level_1)
u = ds_selected['u'] # 东西向风速
v = ds_selected['v'] # 南北向风速
d= ds_selected['vo'] # 涡度
# 获取经度和纬度,假设这些是坐标维度
longitude = u.longitude
latitude = u.latitude
#选择画图区域范围
extents = [106, 111, 30, 35]
#投影方式
crs = ccrs.PlateCarree()
# 创建图形和轴对象
fig = plt.figure(figsize=[8,10])
ax = fig.add_subplot(111, projection=crs)
ax.set_extent(extents, crs)
gl = ax.gridlines(draw_labels=True,
xlocs=np.arange(extents[0], extents[1], 1), # 经度位置,包含边界值
ylocs=np.arange(extents[2], extents[3], 1),
xformatter=LONGITUDE_FORMATTER,
yformatter=LATITUDE_FORMATTER,
linestyle='--',
linewidth=0)
#画涡度等值线图
contour1 = ax.contour(longitude, latitude, d, colors='k', linewidths=1, linestyles='solid' ,alpha=1)
c1 = plt.clabel(contour1, inline=True, fontsize=10)
#画涡度填色图
cf_rh = ax.contourf(longitude,latitude, d,
cmap='coolwarm',#加入色条
extend='both')#设置色条为两头尖
#色标的设置
cb = fig.colorbar(cf_rh,orientation='vertical',shrink=0.75)
# 绘制风杆
ax.barbs(longitude[::2],latitude[::2],u[::2,::2],v[::2,::2], barbcolor=['k'], linewidth=0.5,
length=5, barb_increments=dict(half=2, full=4, flag=20))
# 调整风杆疏密度,风羽图设置 半根2米,一根4米,三角20米
# 使用shp文件
reader = cartopy.io.shapereader.Reader('D:/pythonProjec/20230206/xx.shp')
provinces = cartopy.feature.ShapelyFeature(reader.geometries(),crs=ccrs.PlateCarree(),
edgecolor='k',
facecolor='none',alpha=1)
ax.add_feature(provinces, linewidth=0.65, zorder=2)
#设置题目
ax.set_title("19-18-500")
#保存文件
plt.savefig("D:/pythonProjec/1918500.jpg",dpi=500)
|
|