尝试使用共享的 x 轴绘制 3 个子图

Trying to plot 3 subplots with a shared x-axis

我正在尝试使用共享的 x 轴绘制 3 subplots,但出于某种原因,只有我的 subplots 之一正在绘制,我无法弄清楚原因:

df1 = pd.DataFrame({'col1':[1,2,3,None,5], 'col2':[25,5,None,None,1], 
'col3':[40,3,None,None,None]}, index=[datetime.date(2015,7,7),datetime.date(2015,7,12),datetime.date(2015,8,1),datetime.date(2015,8,10),datetime.date(2015,9,20)])

df2 = pd.DataFrame({'col1':[14,82,None,None,1], 'col2':[5,5,None,4,1], 'col3':[4,3,5,None,6]}, 
               index=[datetime.date(2015,7,10),datetime.date(2015,7,15),datetime.date(2015,8,4),datetime.date(2015,8,12),datetime.date(2015,9,25)])

df3 = pd.DataFrame({'col1':[10,9,None,None,15], 'col2':[None,5,None,3,1], 'col3':[None,3,3,1,74]}, 
               index=[datetime.date(2015,7,5),datetime.date(2015,8,1),datetime.date(2015,8,9),datetime.date(2015,8,10),datetime.date(2015,9,20)])


fig=plt.figure(figsize=(15, 15))
ax1 = plt.subplot(313)
ax2 = plt.subplot(312, sharex = ax1)
ax3 = plt.subplot(311, sharex = ax1)

for column in df1.columns:
    ax1 = plt.scatter(df1.index, df1[column], s=2)


for column in df2.columns:
    ax2 = plt.scatter(df2.index, df2[column], s=2)


for column in df3.columns:
    ax3 = plt.scatter(df3.index, df3[column], s=2)

plt.show()

您定义子图而不使用它们。使用这个:

for column in df1.columns:
    ax1.scatter(df1.index, df1[column], s=2)


for column in df2.columns:
    ax2.scatter(df2.index, df2[column], s=2)


for column in df3.columns:
    ax3.scatter(df3.index, df3[column], s=2)