Я хочу построить OHLC-свечи в python с помощью функции Candle_stick_ohlc из matplotlib.finance.
У меня есть датафрейм, подобный этому:
Open High Low Close Volume Market Cap
Date
2018-04-09 7044.32 7178.11 6661.99 6770.73 4894060000 119516000000
2018-04-08 6919.98 7111.56 6919.98 7023.52 3652500000 117392000000
2018-04-07 6630.51 7050.54 6630.51 6911.09 3976610000 112467000000
2018-04-06 6815.96 6857.49 6575.00 6636.32 3766810000 115601000000
2018-04-05 6848.65 6933.82 6644.80 6811.47 5639320000 116142000000
преобразовать 'Открыть, Высокий, Низкий, Закрыть' в список списков:
ohlc =
[['2018-04-09', 7044.32, 7178.11, 6661.99, 6770.73],
['2018-04-08', 6919.98, 7111.56, 6919.98, 7023.52],
['2018-04-07', 6630.51, 7050.54, 6630.51, 6911.09],
['2018-04-06', 6815.96, 6857.49, 6575.0, 6636.32],
['2018-04-05', 6848.65, 6933.82, 6644.8, 6811.47]]
Попробуйте построить:
from matplotlib.finance import candlestick_ohlc
fig, ax = plt.subplots(nrows=2, ncols=2,sharex=True,figsize=(30,20))
candlestick_ohlc(ax[1,0],ohlc,width=0.6)
TypeError: неподдерживаемые типы операндов для -: 'str' и 'float'
преобразовать строку даты в кортеж:
ohlc=
[[(2018, 4, 9), 7044.32, 7178.11, 6661.99, 6770.73],
[(2018, 4, 8), 6919.98, 7111.56, 6919.98, 7023.52],
[(2018, 4, 7), 6630.51, 7050.54, 6630.51, 6911.09],
[(2018, 4, 6), 6815.96, 6857.49, 6575.0, 6636.32],
[(2018, 4, 5), 6848.65, 6933.82, 6644.8, 6811.47]]
TypeError: unsupported operand type(s) for -: 'tuple' and 'float'
Любая помощь?
Спасибо заранее