Я пытаюсь добавить точки данных в мой график matplotlib. Я использую класс временных рядов и поворачиваю данные как столбец временного индекса и столбец значений. Я рисую прошлые и прогнозируемые значения на графике. Я хочу добавить метки данных на график, как на изображении
Мой оригинальный код выглядит следующим образом:
for value, pivot_df in self.time_series_values_to_df_pvt.items():
try:
adf_test = adfuller(pivot_df[self.pvt_value])
except ValueError as err:
continue
test_statistics = adf_test[0]
p_value = adf_test[1]
if p_value <= 0.05:
print("p_value:", adf_test[1])
print("Test Statistics:", adf_test[0])
arima_dict = self.arimaopt_values(pivot_df)
model_results, mean_abs_err = self.model_fitting(pivot_df, arima_dict['order'],
arima_dict['seasonal_order'])
diff_forecast = self.forecast(model_results, False, None)
fig, ax = plt.subplots(figsize=(20, 10))
plt.plot(pivot_df, label='observed', color='blue')
plt.plot(diff_forecast, label='forecast', color='red')
plt.legend()
file = self.figure_path + str(value) + '.png'
print(file)
plt.savefig(file)
plt.show()
Когда я исследовал, я нашел некоторые результаты для добавления меток данных и Я изменил свой код, как показано ниже:
for value, pivot_df in self.time_series_values_to_df_pvt.items():
try:
adf_test = adfuller(pivot_df[self.pvt_value])
except ValueError as err:
continue
test_statistics = adf_test[0]
p_value = adf_test[1]
if p_value <= 0.05:
print("p_value:", adf_test[1])
print("Test Statistics:", adf_test[0])
arima_dict = self.arimaopt_values(pivot_df)
model_results, mean_abs_err = self.model_fitting(pivot_df, arima_dict['order'],
arima_dict['seasonal_order'])
diff_forecast = self.forecast(model_results, False, None)
fig, ax = plt.subplots(figsize=(20, 10))
plt.plot(pivot_df, label='observed', color='blue')
plt.plot(diff_forecast, label='forecast', color='red')
for x,y in zip(pivot_df,diff_forecast):
label='test'
plt.annotate(label, (x,y),ha='center',textcoords='offset points', xytext=(0,10))
plt.legend()
file = self.figure_path + str(value) + '.png'
print(file)
plt.savefig(file)
plt.show()
Но теперь, когда я пытаюсь экспортировать или показать графики, я вижу, что они пусты. Спасибо за вашу помощь.