在子图中使用 ax.twin 时 xticklabels 消失

xticklabels disappear when using ax.twin in subplots

我正在尝试使用 pandas 图创建一个 2 行子图,其中上面的子图有第二个 y 轴,但是第二个轴的创建使得 xticklabels 消失,如下所示。 我使用了以下代码:

fig,axes=plt.subplots(2,1)
ax=axes[0]
pd.Series(range(10)).plot(ax=ax)
ax2=ax.twinx()
(pd.Series(range(10))**2).plot(ax=ax2)

ax=axes[1]
pd.Series(range(10)).plot(ax=ax)

当使用相同的代码但替换子图的顺序时它工作正常:

fig,axes=plt.subplots(2,1)

ax=axes[0]
pd.Series(range(10)).plot(ax=ax)


ax=axes[1]
pd.Series(range(10)).plot(ax=ax)
ax2=ax.twinx()
(pd.Series(range(10))**2).plot(ax=ax2)

为此,我建议按原样使用 matplotlib,而不是通过 pandas。那应该可以解决您的问题。

所以它会是这样的:

import matplotlib.pyplot as plt
fig,axes=plt.subplots(2,1)

ax=axes[0]
ax.plot(pd.Series(range(10)))
ax2=ax.twinx()
ax2.plot(pd.Series(range(10))**2)

ax=axes[1]
ax.plot(pd.Series(range(10)))