matplotlib共享x轴,但不显示两个x轴刻度标签,只有一个

我使用python + matplotlib,我有两个图共享一个轴。 如果您在共享一个轴的时候尝试设置graph1.set_xticklabels([]) ,它将不起作用,因为它是共享的。 有没有办法共享轴,并能够隐藏一个阴谋的X轴?

使用共享轴时这是一个常见的问题。

幸运的是,有一个简单的解决方法:使用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() 

替代文字

每个matplotlib用户的线程,你可以使用

 import matplotlib.pyplot as plt for ax in plt.gcf().axes: try: ax.label_outer() except: pass 

您可以在使用plt.subplots as创buildplt.subplots图时共享坐标轴

 fig, axes = plt.subplots(nrows=2, sharex=True) 

这会自动closures内轴的标签。

完整的例子:

 import matplotlib.pyplot as plt fig, axes = plt.subplots(nrows=2, sharex=True) axes[0].plot([1,2,3]) axes[1].plot([3,2,1]) plt.show() 

在这里输入图像说明