Я пытаюсь построить два подзаговора на одном и том же рисунке с несколькими наборами временных рядов. В представлении ниже я хотел бы, чтобы верхний подзаголовок содержал только серию под названием «оригинал», а остальные - ниже. Однако мой код группирует их все на подзаговоре ниже. Теперь вы можете увидеть, как это выглядит:
Реализованный код следующий:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.holtwinters import ExponentialSmoothing
# Data loading
data = pd.read_csv('setpoints.csv', parse_dates=['date'], index_col=['date'])
df_data = pd.DataFrame(data, columns=['Data'])
df_matric['Data'].index.freq = 'MS'
train, test = df_data['Data'], df_data['Data']
model = ExponentialSmoothing(train, trend='mul', seasonal='add', seasonal_periods=12).fit()
period = ['Jan-12', 'Dec-14']
pred = model.predict(start=period[0], end=period[1])
print(pred)
df_data['Data'].plot(label='Train')
test.plot(label='Test')
pred.plot(label='Holt-Winters')
plt.legend(loc='best')
plt.show()
fig, (ax1, ax2) = plt.subplots(2)
fig.suptitle('Submissions data')
ax1.set_ylim(0, 300000)
ax1.set_ylabel('Submissions')
ax1 = df_data['Data'].plot(label='Original', color = 'blue')
ax1.legend()
ax2 = df_data['Data'].plot(label='Train')
ax2 = test.plot(label='Test')
ax2 = pred.plot(label='Holt-Winters')
ax2.set_xlabel('Date')
ax2.set_ylabel('Submissions')
ax2.legend()
plt.show()
И набор данных следующий:
date,Data
Jan-12,153046
Feb-12,161874
Mar-12,226134
Apr-12,171871
May-12,191416
Jun-12,230926
Jul-12,147518
Aug-12,107449
Sep-12,170645
Oct-12,176492
Nov-12,180005
Dec-12,193372
Jan-13,156846
Feb-13,168893
Mar-13,231103
Apr-13,187390
May-13,191702
Jun-13,252216
Jul-13,175392
Aug-13,150390
Sep-13,148750
Oct-13,173798
Nov-13,171611
Dec-13,165390
Jan-14,155079
Feb-14,172438
Mar-14,225818
Apr-14,188195
May-14,193948
Jun-14,230964
Jul-14,172225
Aug-14,129257
Sep-14,173443
Oct-14,188987
Nov-14,172731
Dec-14,211194
Кто-нибудь теперь, как я могу его решить? Или лучший способ сделать это