Це загальна помилка при використанні спільних осей.
На щастя, є просте виправлення: використовуйте, plt.setp(ax.get_xticklabels(), visible=False)
щоб зробити мітки невидимими лише на одній осі.
Це еквівалентно тому [label.set_visible(False) for label in ax.get_xticklabels()]
, чого б це не вартувало. setp
автоматично працюватиме на ітерації об’єктів matplotlib, а також окремих об’єктів.
Як приклад:
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2,1,1)
ax1.plot(range(10), 'b-')
ax2 = fig.add_subplot(2,1,2, sharex=ax1)
ax2.plot(range(10), 'r-')
plt.setp(ax1.get_xticklabels(), visible=False)
plt.show()
plt.setp(ax2.get_yticklabels(), visible=True)
. Працювали бездоганно.