AttributeError: у объекта 'Series' нет атрибута 'update_datalim' - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь создать график подсвечника, используя некоторые данные, которые я сохранил в CSV-файле, и библиотеку mpl_finance:

Первые пять строк выглядят так:

              Date               Open      High       Low     Close    Volume

0  2017-08-24 04:00:00.000000  0.002890  0.002890  0.002670  0.002670  371.64
1  2017-08-24 04:05:00.000000  0.002669  0.002669  0.002669  0.002669    4.80
2  2017-08-24 04:10:00.000000  0.002600  0.002649  0.002600  0.002649   61.71
3  2017-08-24 04:15:00.000000  0.002640  0.002640  0.002640  0.002640   20.00
4  2017-08-24 04:20:00.000000  0.002620  0.002620  0.002600  0.002602   92.68   

Ниже приведен код , который я использую:

import pandas as pd
import matplotlib.pyplot as plt
from mpl_finance import candlestick2_ochl

df = pd.read_csv("data.csv")
df["Date"] = pd.to_datetime(df["Date"])

candlestick2_ochl(ax = df["Date"],opens=df["Open"],closes=df["Close"],highs =df["High"],lows = df["Low"])
plt.show()

Когда я запускаю этот код, я получаю следующее ошибка :

Traceback (most recent call last):
  File "Untitled 5.py", line 16, in <module>
    candlestick2_ochl(ax = df["Date"],opens=df["Open"],closes=df["Close"],highs =df["High"],lows = df["Low"])
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mpl_finance.py", line 552, in candlestick2_ochl
    alpha=alpha)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mpl_finance.py", line 633, in candlestick2_ohlc
    ax.update_datalim(corners)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pandas/core/generic.py", line 3614, in __getattr__
    return object.__getattribute__(self, name)
AttributeError: 'Series' object has no attribute 'update_datalim'

(PS: я пытался запустить код без df["Date"] = pd.to_datetime(df["Date"]), но выдает ту же ошибку)

Большое спасибо за помощь!

1 Ответ

0 голосов
/ 28 апреля 2019

из документации подсвечника2_ochl :

matplotlib.finance.candlestick2_ohlc(ax, opens, highs, lows, closes,
width=4, colorup='k', colordown='r', alpha=0.75) 

Представляет открытие, закрытие в виде линии бара и верхний-нижний диапазон в виде вертикальной линии.

ПРИМЕЧАНИЕ: этот код предполагает, что если какое-либо значение open, low, high, close отсутствует, все они отсутствуют

Параметры: ax: Axes

экземпляр Axes для построения на

[...]

Итак, ax указывает, на каком графике / под-графике окажется ваш график.

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

fig = plt.figure()
ax = fig.add_subplot(1,1,1)

candlestick2_ochl(ax=ax, opens=df["Open"],closes=df["Close"],highs =df["High"],lows = df["Low"])

как для вопроса с plt.subplot(1,1,1): Это означает, что сетка 1x1, первое местоположение.Вы можете перейти к этой записи для получения дополнительной информации об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...