将子图调整为Cartopy子图的大小

时间:2019-03-18 22:01:12

标签: python matplotlib cartopy

我正在使用二维纬度-经度网格中的数据进行处理,该网格是使用Cartopy绘制的。我想在此数据旁边绘制纬度或经度轴的平均数据,但是我不知道如何强制此线图具有与Cartopy中绘制的数据相同的宽度(或高度)。现在,我得到以下信息:screenshot

但是,我想:

  • 第二个子图中的平均日期具有相同的宽度 作为第一个子图,因此线图中的每个数据点 对应于经度数据的平均值
  • 理想的举动 他们紧挨着

我当前的代码:

if avg_axis == 'lat':
    fig = plt.figure(figsize=(8,9))
    gs = gridspec.GridSpec(2, 1, height_ratios=[3, 1]) 
    ax1 = plt.subplot(gs[0], projection=ccrs.PlateCarree())
    ax2 = plt.subplot(gs[1])
    ax2.plot(lons, avg_phase)
    ax2.set_ylabel('Average Phase')
    ax2.set_xlabel('Longitude')
if avg_axis == 'lon':
    fig = plt.figure(figsize=(10,6))
    gs = gridspec.GridSpec(1, 2, width_ratios=[3, 1]) 
    ax1 = plt.subplot(gs[0], projection=ccrs.PlateCarree())
    ax2 = plt.subplot(gs[1])
    ax2.plot(avg_phase, lats)
    ax2.set_xlabel('Average Phase')
    ax2.set_ylabel('Latitude')
cf    = ax1.pcolor(lons, lats, phase, transform=ccrs.PlateCarree(), cmap='hsv', vmin=-np.pi, vmax=np.pi)
ax1.coastlines()
ax1.add_feature(cartopy.feature.LAND, zorder=100, edgecolor='k')
gl    = ax1.gridlines(crs=ccrs.PlateCarree(), linestyle='--', draw_labels = True)
gl.xlabels_top = False
gl.ylabels_right = False
cbar  = fig.colorbar(cf, ax=ax1)
cbar.ax.set_ylabel('phase')

0 个答案:

没有答案