Как я могу построить график подсвечника с DataFrame в Python? - PullRequest
0 голосов
/ 26 января 2019

Я не могу понять, как построить график OHLC для подсвечника с помощью python. С тех пор как matplotlib.finance устарел, у меня возникла эта проблема ... Спасибо за вашу помощь!

DataFrame "quotes" является превосходным (не может вставить здесь), но имеет следующие столбцы:

Индекс (['Date', 'Open', 'High', 'Low', 'Close'], dtype = 'object')

У меня также есть индекс по умолчанию. Столбец «Дата» представляет собой pandas._libs.tslibs.timestamps.Timestamp

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

Файл "", строка 30, в подсвечник_ohlc (ax, zip (mdates.date2num (quotes.index.to_pydatetime ()), AttributeError: у объекта RangeIndex нет атрибута to_pydatetime

Вот мой код:

import datetime

import matplotlib.dates as mdates
import matplotlib.pyplot as plt
import pandas as pd
from matplotlib.dates import MONDAY, DateFormatter, DayLocator, 
WeekdayLocator

from mpl_finance import candlestick_ohlc

date1 = "2004-2-1"
date2 = "2004-4-12"


mondays = WeekdayLocator(MONDAY)
alldays = DayLocator()
weekFormatter = DateFormatter('%b %d')
dayFormatter = DateFormatter('%d')


fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)
ax.xaxis.set_major_locator(mondays)
ax.xaxis.set_minor_locator(alldays)
ax.xaxis.set_major_formatter(weekFormatter)

candlestick_ohlc(ax, zip(mdates.date2num(quotes.index.to_pydatetime()), 
quotes['Open'], quotes['High'],
quotes['Low'], quotes['Close']),
width=0.6)

ax.xaxis_date()
ax.autoscale_view()
plt.setp(plt.gca().get_xticklabels(), rotation=45, 
horizontalalignment='right')

plt.show()

1 Ответ

0 голосов
/ 26 января 2019

Если вы не укажете индекс при построении вашего DataFrame, по умолчанию он будет равен RangeIndex, который просто нумерует ваши строки подряд. Этот RangeIndex, очевидно, не конвертируется в дату - отсюда и ошибка. Функция read_excel принимает index_col в качестве параметра, чтобы указать, какой столбец использовать в качестве индекса. Вы также можете предоставить parse_dates=True.

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