如何在Python中的时间序列分析期间结合两个折线图进行数据验证

如何在Python中的时间序列分析期间结合两个折线图进行数据验证,python,pandas,validation,matplotlib,timeserieschart,Python,Pandas,Validation,Matplotlib,Timeserieschart,我已经分离了我的培训数据以进行验证,并尝试按照一个示例,说明如何在一个时间序列图中绘制培训和验证数据,在该时间序列图中,线将连接起来,并在验证数据处更改颜色(参见我下面的示例图片) 我非常接近这个例子(根据我自己的数据进行了调整),得到了两个独立的图表。 下面是编码和输出的示例: Train.Count.plot(figsize=(15,8), title= 'Daily Ridership', fontsize=14, label='train') valid.Count.plot(figs

我已经分离了我的培训数据以进行验证,并尝试按照一个示例,说明如何在一个时间序列图中绘制培训和验证数据,在该时间序列图中,线将连接起来,并在验证数据处更改颜色(参见我下面的示例图片)

我非常接近这个例子(根据我自己的数据进行了调整),得到了两个独立的图表。 下面是编码和输出的示例:

Train.Count.plot(figsize=(15,8), title= 'Daily Ridership', fontsize=14, label='train') 
valid.Count.plot(figsize=(15,8), title= 'Daily Ridership', fontsize=14, label='valid') 
plt.xlabel("Datetime") plt.ylabel("Passenger count") plt.legend(loc='best') plt.show()

我的代码(使用设置为提供pandas dataframes Banana_train和bananas_val中的值之和的不同数据)如下所示:

bananas_train.plot(figsize=(15,8), title= 'Bananas Daily', fontsize=14, label='train')
bananas_val.plot(figsize=(15,8), title= 'Bananas Daily', fontsize=14, label='valid')
plt.xlabel("Date")
plt.ylabel("Quantity Picked")
plt.legend(loc='best')
plt.show()
由于收到语法错误,与原始代码相比,底线已被分隔

我尝试使用以下代码重做,但仍然得到两个单独的图:

#attempt 2
plt.figure(figsize=(28,8))
ax1 = bananas_train.plot(color='blue', grid=True, label='train')
ax2 = bananas_val.plot(color='red', grid=True, label='valid')
plt.xlabel("Date")
plt.ylabel("Quantity Picked")
h1, l1 = ax1.get_legend_handles_labels()
h2, l2 = ax2.get_legend_handles_labels()
plt.legend(h1+h2, l1+l2, loc='best')
plt.show()
我的结果显示了两个独立的时间序列图,而不是一个。关于如何合并这两个图表有什么想法吗

编辑:如果我跟随这个问题的重复页面。。。 我得到了一个包含两条线的图,但是x轴从一开始就匹配,而不是从最后一条线离开的地方继续。 以下是我的代码,我尝试按照这些方向操作,得到了以下结果:

#attempt 3
ax = bananas_train.plot()
bananas_val.plot(ax=ax)
plt.show()

我需要我的结果来继续用新合并的数据绘制的线,而不是重叠线。

下次在您的问题中包含一些示例数据会很好。 我相信有更好的方法来实现你的目标,但我会在这里列出一个:

# get the length of your training and checking set assuming your data are 
# in 2 dataframes (test and check respectively) with a column named after 'count'
t_len=len(test['count'].index)
c_len=len(check['count'].index)

# concaternate your dataframes
test_check= pd.concat([test['count'],check['count']],ignore_index=True)

#create 2 dataframes assigning 0s to training and checking set respectively
test_1=test_check.copy()
check_1= test_check.copy()

test_1.iloc[0:t_len]=0
check_1.iloc[c_len:]=0

#make the plot
test_1.plot(figsize=(15,8),color='blue')
check_1.plot(figsize=(15,8),color='red')

文章中的图片不是我的结果图,而是我试图完成的。感谢您的指导。在遵循前面提到的问题中的建议并在我的数据中正确标记日期后(哎哟),问题得到了解决。