首先,您无法创建子图的子图。子图是
axes放置在图形中的对象,并且轴不能具有“子轴”。
解决您的问题的方法是创建6个子图并将其应用于
sharex=True各个轴。
import matplotlib.pyplot as pltimport numpy as npdata = np.random.rand(17, 6)data[15:, 3:] = np.random.rand(2, 3)+3.markers=["o", "p", "s"]colors=["r", "g", "b"]fig=plt.figure(figsize=(10, 4))axes = []for i in range(3): ax = fig.add_subplot(2,3,i+1) axes.append(ax)for i in range(3): ax = fig.add_subplot(2,3,i+4, sharex=axes[i]) axes.append(ax)for i in range(3): # plot same data in both top and down axes axes[i].plot(data[:,i], data[:,i+3], marker=markers[i], line, color=colors[i]) axes[i+3].plot(data[:,i], data[:,i+3], marker=markers[i], line, color=colors[i])for i in range(3): axes[i].spines['bottom'].set_visible(False) axes[i+3].spines['top'].set_visible(False) axes[i].xaxis.tick_top() axes[i].tick_params(labeltop='off') # don't put tick labels at the top axes[i+3].xaxis.tick_bottom() axes[i].set_ylim([3,4]) axes[i+3].set_ylim([0,1]) axes[i].set_xlim([0,1])#adjust space between subplotsplt.subplots_adjust(hspace=0.08, wspace=0.4)plt.show()



