【问题标题】:Trying to plot 3 subplots with a shared x-axis尝试使用共享 x 轴绘制 3 个子图
【发布时间】:2019-07-13 21:11:57
【问题描述】:

我正在尝试使用共享的 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()

【问题讨论】:

    标签: python pandas dataframe matplotlib subplot


    【解决方案1】:

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

    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)
    

    【讨论】:

    • 此外,他实际上是在覆盖它们。
    猜你喜欢
    • 2021-12-15
    • 2010-11-27
    • 2019-01-06
    • 1970-01-01
    • 2021-03-14
    • 2016-10-10
    • 2018-01-04
    • 2018-03-31
    • 2017-04-22
    相关资源
    最近更新 更多