#python #matplotlib #plot #autocorrelation
#python #matplotlib #график #автокорреляция
Вопрос:
Я пытаюсь показать 4 графика автокорреляции, по 1 для каждого столбца со значениями моего фрейма данных. Я использую цикл for, чтобы он отображался 4 раза. Но в результате график автокорреляции отображается только один раз с 4 строками вместо того, чтобы отображаться 4 раза с каждым графиком только по 1 строке. Мой код выглядит следующим образом: (Игнорируйте библиотеки, которые импортируются, но не используются)
from dateutil.parser import parse
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
plt.rcParams.update({'figure.figsize': (5, 3), 'figure.dpi': 120}
from statsmodels.tsa.seasonal import seasonal_decompose
from dateutil.parser import parse
from scipy import signal
from pandas.plotting import autocorrelation_plot
# Import Data
ser = pd.read_csv('Time series analysis dataset Weekly.csv', parse_dates=['Date'], index_col='Date')
ser = ser[ser.YearOfDate != 2020]
ValueNames = ['Europe', 'Total', 'International', 'Distributor']
ColorsList = ['Blue','Green','Orange','Purple','Brown']
# Draw Plot
plt.rcParams.update({'figure.figsize':(7,4), 'figure.dpi':120})
for ValueRound in range(0,len(ValueNames)):
autocorrelation_plot(ser[f'{ValueNames[ValueRound]}'].tolist())
Результат, который я получаю, запуская скрипт
Из-за цикла for было построено 4 строки, по 1 для каждого имени значения. Желаемый результат — иметь 4 отдельных графика с каждой 1 строкой. В других сценариях, где я использую обычный график, я использовал plt.plot.show() в цикле for . В результате получается 4 графика только с 1 строкой. Как я могу сделать это для графика автокорреляции?
Я следую этому руководству для анализа временных рядов https://www.machinelearningplus.com/time-series/time-series-analysis-python /, я основал свой сценарий на сценарии из главы 14: Как проверить сезонность.
Вот еще одна картинка с желаемым графиком. Чтобы получить этот график, я только 1 раз зациклил цикл for, в результате чего только ОДНА строка для имени значения Europe . Смотрите
Комментарии:
1. Что за **** лол. Я думал, что попробовал это, и он сказал, что это не сработало, потому что это график автокорреляции. Теперь я добавил plt.show(), и он работает. Спасибо, вы разрешили мою проблему @ombk
Ответ №1:
Решена проблема путем добавления plt.show()
в конце цикла for вместо plt.plot.show()