Пытаюсь нарисовать скользящую среднюю через matplotlib но выдает ошибку

Всем доброго дня. Вот код, вроде делаю все по примеру, но выдает ошибку AttributeError

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

df = pd.read_csv("apple.csv", parse_dates =["date"], index_col ="date")

df_close = pd.DataFrame(df.close)
df_close['MA9'] = df_close.close.rolling(4).mean()

plt.figure(figsize=(15, 10))
plt.grid(True)
plt.plot(df_close['close'], lable='Apple')
plt.plot(df_close['MA9'], lable='MA 9 Day')
plt.legend(loc=2)

Загружаемая таблица выглядит вот так:

введите сюда описание изображения

Пробовал вот такой формат записи, но выдает ту же ошибку - df_close['close'].plot(lable='Apple')

Через функцию print все работает. Что я делаю не так, подскажите пожалуйста.


Ответы (1 шт):

Автор решения: passant

Что я делаю не так, Ну, давайте по-порядку.

  1. Вы видите ошибку. Более того, интерпретатор вам выдает номер строки, в которой у вас ошибка. Но вы эту информацию держите в тайне, дам нам возможность самим поугадывать, что же и где у вас за ошибка.
  2. Вы правильно решили, что для воспроизведения у себя вашей ошибки нам бы не помешали ваши данные. Но при этом зачем-то выкатили картинку (png) с вашим файлом. Вы действительно считаете, что кому-то захочется перенабивать его вручную, что-бы помочь вам отыскать вашу ошибку?
  3. Непонятно, что вы хотели сказать вот этой фразой "Через функцию print все работает." - print и plt - это два разные потоки вывода.

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

df=pd.DataFrame({'A':[1,2,3,4,5,6,7,8,9],'close':[1,3,4,5,4,6,3,7,9]})
df['MA9'] = df.close.rolling(4).mean()
fig, ax = plt.subplots(1,1)
ax.plot(df.index,df['close'], label='Apple')
ax.plot(df['MA9'], label='MA 9 Day')
ax.legend()

Результат, подтверждающий, что все работает:

введите сюда описание изображения

P.S. После публикации ответа и более внимательного просмотра вашего текста, хочу сказать, что помести вы нормальное описание ошибки в текст вопроса, ошибка бы была понятна сразу. А так, пришлось поковыряться, помоделировать. А причина - элементарна. Параметр label, а не lable, как вы питались написать.

→ Ссылка