Python 如何使用两个重新排列的轴设置matplotlib的背景?

Python 如何使用两个重新排列的轴设置matplotlib的背景?,python,matplotlib,Python,Matplotlib,我的表单(ui)上有来自Qt designer的matplotlib小部件(mpl)。然后我用双轴绘制一些数据: ui.mpl.axes.plot(x, y1)) ax2 = ui.mpl.axes.twinx() ax2.plot(x, y2) 现在我希望我的左轴图位于右轴1上,所以我改变了轴的z顺序: ui.mpl.axes.set_zorder(ui.mpl.axes.get_zorder()+1) 更改z顺序后,我的第二个绘图消失,因此我必须添加: ui.mpl.axes.patc

我的表单(ui)上有来自Qt designer的matplotlib小部件(mpl)。然后我用双轴绘制一些数据:

ui.mpl.axes.plot(x, y1))
ax2 = ui.mpl.axes.twinx()
ax2.plot(x, y2)

现在我希望我的左轴图位于右轴1上,所以我改变了轴的z顺序:

ui.mpl.axes.set_zorder(ui.mpl.axes.get_zorder()+1)
更改z顺序后,我的第二个绘图消失,因此我必须添加:

ui.mpl.axes.patch.set_visible(False)
我明白了:

问题是如何返回白色背景?或者有其他方法可以改变轴的顺序

这无助于:

ax2.set_axis_bgcolor('white')

对!!似乎第二轴的画布在默认情况下不可见。这就解决了这个问题:

ax2.patch.set_visible(True)

不确定相对zorder shift方法,因为它假设两个zorder仅相差一个,当您将它们设置为相等时,它们将交换。如果同时读取它们并进行交换,会发生什么。不过,更简单的方法是:1)在绘图窗口中使用
zorder
关键字将zorder设置为您想要的;2) 将它们直接设置为
1
2
,在plot.thx之后,现在代码看起来更清晰了