Python-子图仅显示底部图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-子图仅显示底部图相关的知识,希望对你有一定的参考价值。

[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)'))
答案

我认为您需要了解ax.plotpandas.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)

以上是关于Python-子图仅显示底部图的主要内容,如果未能解决你的问题,请参考以下文章

Python中两个图的子图未正确显示

条形图仅显示一个 x 值的条形图

Python数据可视化库-Matplotlib——折线图,子图绘制

Xcode 调试内存图仅显示 UIKit

Google Charts API 面积图仅在注释中显示最大值和最小值

在情节(python)中 - 是不是可以将子图放在子图中