共享轴的通常方法是在创建时创建共享属性。或者fig=plt.figure()
ax1 = plt.subplot(211)
ax2 = plt.subplot(212, sharex = ax1)
或者fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
因此,不必在创建轴之后共享轴。
但是,如果出于任何原因,您需要在创建轴之后共享轴(实际上,使用创建某些子块的不同库,如here,或sharing an inset axes可能是一个原因),仍然有一个解决方案:
使用ax1.get_shared_x_axes().join(ax1, ax2)
在两个轴ax1和ax2之间创建链接。与创建时的共享不同,您必须为其中一个轴手动设置xticklabels(以防需要)。
一个完整的例子:import numpy as np
import matplotlib.pyplot as plt
t= np.arange(1000)/100.
x = np.sin(2*np.pi*10*t)
y = np.cos(2*np.pi*10*t)
fig=plt.figure()
ax1 = plt.subplot(211)
ax2 = plt.subplot(212)
ax1.plot(t,x)
ax2.plot(t,y)
ax1.get_shared_x_axes().join(ax1, ax2)
ax1.set_xticklabels([])
# ax2.autoscale() ## call autoscale if needed
plt.show()