经纬度-时间分布图

气象绘图中,等值线图包含很多种类,其中一种就是以经纬度,和时间或者高度为xy轴的等值线分布图。其与普通等值线图的区别主要体现在xy轴格式不统一上。以纬度-时间分布图为例,分享绘制这类图形的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import xarray as xr
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import pandas as pd
#读取数据
f = xr.open_dataset('./data.nc')
z = f['hgt'].loc['2005-01-01':'2005-12-01',500,:,120]
time = z.time
lat = z.lat
#创建Figure
fig = plt.figure(figsize=(16, 13))
#绘制500hPa位势高度场
ax1 = fig.add_subplot(1,1,1)
#绘制等值线
q1 = ax1.contour(range(time.shape[0]), lat, z.T)
#设置y轴为对数轴,并设置相关标签
ax1.set_xticks(np.arange(0,12,1))
ax1.set_yticks(np.arange(-90,120,30))
ax1.yaxis.set_major_formatter(cticker.LatitudeFormatter())
#设置x轴标签
ax1.set_xlim(0,11)
ax1.set_xticks(np.arange(0,12,1))
ax1.set_xticklabels(pd.date_range(start='2005-01',periods=12,freq='M').date )
#添加图题
ax1.set_title('2005 500hPa Z',loc='center',fontsize=18)

输出图形如下:

image-20200702161610554

其中z数组代表2005年逐月120°E经线上500hPa位势高度场演变(只做示例,不考虑绘图意义)