Đây là lỗi chung khi sử dụng các trục chia sẻ.
May mắn thay, có một cách khắc phục đơn giản: sử dụng plt.setp(ax.get_xticklabels(), visible=False)
để làm cho các nhãn ẩn chỉ trên một trục.
Điều này tương đương [label.set_visible(False) for label in ax.get_xticklabels()]
với bất cứ giá trị nào của nó. setp
sẽ tự động hoạt động trên một đối tượng matplotlib có thể lặp lại, cũng như các đối tượng riêng lẻ.
Ví dụ:
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)
. Làm việc hoàn hảo.