Python - подзаголовок, отображающий только нижний график - PullRequest
0 голосов
/ 09 мая 2020

У меня проблема с Python отображением набора данных как 'ax1' на нижнем подзаголовке, а не нанесением данных 'ax2' где-либо, оставляя верхний подзаголовок пустым.

Любая помощь приветствуется!

fig, (ax1, ax2) = plt.subplots(2, sharex=True)
    fig.suptitle('Sea Surface pCO2 (ppmv)')
    ax1 = ax1.plot(interp_bathy.where(interp_bathy > 0).plot(cmap=cm.topo, vmin = -4000, vmax = 4000, add_colorbar=False),interp_pco2_pre.where(interp_bathy >-120).where(interp_bathy <0).plot(levels=np.arange(200,501,10), cmap=cm.thermal, cbar_kwargs = {'label':'Sea surface pCO2 (ppmv)'}))
    ax2 = ax2.plot(interp_bathy.where(interp_bathy > 0).plot(cmap=cm.topo, vmin = -4000, vmax = 4000, add_colorbar=False),interp_pco2_pd.where(interp_bathy >-120).where(interp_bathy <0).plot(levels=np.arange(200,501,10), cmap=cm.thermal, cbar_kwargs = {'label':'Sea surface pCO2 (ppmv)'}))

1 Ответ

1 голос
/ 09 мая 2020

Думаю, вам нужно понять, что делают ax.plot и pandas .Series.plot . Способ сделать это - передать оси в функцию pandas.Series.plot. Вместо этого вы передаете построенный экземпляр самому ax.plot, что не имеет смысла.

Попробуйте сделать следующее:

data1.plot(otherparams.., ax=ax1)
data2.plot(otherparams.., ax=ax2)

В вашем случае это, вероятно, будет похоже на :

dataset1 = interp_bathy.where(interp_bathy > 0)
dataset2 = interp_pco2_pre.where(interp_bathy > -120).where(interp_bathy < 0)
dataset3 = interp_pco2_pd.where(interp_bathy > -120).where(interp_bathy < 0)

dataset1.plot(cmap=cm.topo, vmin = -4000, vmax = 4000,
    add_colorbar=False, ax=ax1)
dataset2.plot(levels=np.arange(200,501,10), cmap=cm.thermal,
    cbar_kwargs = {'label':'Sea surface pCO2 (ppmv)'}, ax=ax1)
dataset1.plot(cmap=cm.topo, vmin = -4000, vmax = 4000,
    add_colorbar=False, ax=ax2)
dataset3.plot(levels=np.arange(200,501,10), cmap=cm.thermal,
    cbar_kwargs = {'label':'Sea surface pCO2 (ppmv)'}, ax=ax2)
...