Невозможно изменить тиковый локатор оси X в ACF, графики PACF в statsmodels, Python - PullRequest
0 голосов
/ 13 марта 2020

Я хотел изменить тик оси X для графиков ACF и PACF, т. Е. Я хотел тик после каждых 2 и 4 юнитов (младших и мажорных тиков) вместо предстоящих 20 юнитов по умолчанию. Я пробовал следующий код:

from statsmodels.graphics.tsaplots import plot_acf,plot_pacf

rcParams['figure.figsize']=20,10
ax = plt.subplot(211)
plot_acf(ts_log_diff) 
ax.xaxis.set_major_locator(plt.MultipleLocator=4) 
ax.xaxis.set_minor_locator(plt.MultipleLocator=2)
plt.subplot(212)
plot_pacf(ts_log_diff, ax=plt.gca())
plt.show()

Я получаю сообщение об ошибке:

File "<ipython-input-99-bfa377e377fd>", line 5
ax.xaxis.set_major_locator(plt.MultipleLocator=4) 
                          ^
SyntaxError: keyword can't be an expression

Я использовал похожий синтаксис с pd.plotting.autocorrelation_plot, и он работал:

plotacf= pd.plotting.autocorrelation_plot(ts_log_diff)
plotacf.xaxis.set_major_locator(plt.MultipleLocator(2))
plotacf.xaxis.set_minor_locator(plt.MultipleLocator( 4))

1 Ответ

0 голосов
/ 13 марта 2020

Чтобы закрыть этот вопрос, я перешел от комментария к ответу.

Проблема с вашим кодом заключалась в том, что вы использовали аргумент ключевого слова с точкой - и это неверный синтаксис. Но вам не нужно было использовать ключевые аргументы вообще. Вместо этого вам нужно вызвать следующее:

ax.xaxis.set_major_locator(plt.MultipleLocator(4))

Я рекомендую проверить больше об аргументах ключевых слов, чтобы вы могли понять синтаксис.

Аргумент ключевого слова пример:

Например, у вас есть функция:

from math import sqrt

def quadratic(a, b, c):
    x1 = -b / (2*a)
    x2 = sqrt(b**2 - 4*a*c) / (2*a)
    return (x1 + x2), (x1 - x2)

Вы можете позвонить quadratic(31, 93, 62) или позвонить напрямую, используя имена аргументов - quadratic(a=31, b=93, c=62)

Источник: https://treyhunner.com/2018/04/keyword-arguments-in-python/

...