美文网首页Python与大气科学
Python气象数据处理与绘图(8):纬高图(对数坐标轴)

Python气象数据处理与绘图(8):纬高图(对数坐标轴)

作者: 摸鱼咯 | 来源:发表于2020-02-12 20:32 被阅读0次

    鸽了好几天,一直没想好更新什么,翻了下以前画过的一些图,突然想到纬高图也是气象研究中心很常见的一类图型,通常用于分析高低空的环流配置,垂直运动等等,那么今天就更新一下。
    纬高图一般指的是纵轴是高度轴的图,横轴可以是纬度,经度,时间等等,用于同时分析垂直方向的环流异常等等,我只是叫纬高图比较顺嘴。


    1979年9月北半球温度的纬度-高度分布图

    我准备的数据是ERA-Interim再分析资料的1979年9月份的温度数据,垂直高度37层,从1000hPa-1hPa,纬度90°N-0°,经度为0-360°。具体如下:

    f = xr.open_dataset('t.nc')
    t = f['t'].loc['1979-09-01']
    high = t.coords['level']
    lat = t.coords['latitude']
    
    数据信息

    首先对经度维求平均,使数据变为纬度-高度的2维数据。

    t = np.array(t).mean((2))-273.15
    #print(t)
    #(37, 91)
    

    然后就直接用来画图了,按常规操作来画的话,问题出现了:

    fig1 = plt.figure(figsize=(12,8))
    f1_ax1 = fig1.add_axes([0.1, 0.1, 0.5, 0.5])
    f1_ax1.set_xticks(np.arange(0,120,30))
    # f1_ax1.set_yscale('symlog')
    c = f1_ax1.contourf(lat,level,t, extend = 'both',levels = np.arange(-80,20,4),cmap=plt.cm.RdBu_r)
    f1_ax1.set_xticklabels([r'0$^\degree$',r'30$^\degree$N', r'60$^\degree$N', r'90$^\degree$N'])
    
    image.png

    纵轴是反着的!
    不要紧,加一条这个就好了。翻转y轴!

    f1_ax1.invert_yaxis()
    

    进一步,我们想将垂直轴设置成对数坐标轴,只需再添加:

    f1_ax1.set_yscale('symlog')
    

    就OK了

    相关文章

      网友评论

        本文标题:Python气象数据处理与绘图(8):纬高图(对数坐标轴)

        本文链接:https://www.haomeiwen.com/subject/dpncfhtx.html