ValueError: недостаточно значений для распаковки (ожидалось 5, получено 4) - PullRequest
0 голосов
/ 09 мая 2020
import pandas as pd
import pandas_datareader.data as web
from matplotlib import style
import matplotlib.pyplot as plt
!pip install https://github.com/matplotlib/mpl_finance/archive/master.zip
from mpl_finance import candlestick_ohlc
import matplotlib.dates as mdates
import datetime as dt

style.use('ggplot')
start = dt.datetime(1996,1,1)
end = dt.datetime(2020,5,8)
df = web.DataReader('TATAMOTORS.NS', 'yahoo', start, end)
df.head()

df_ohlc = df[['Open', 'Close', 'High', 'Low']]
df_ohlc.index = df_ohlc.index.map(mdates.date2num)
df_volume = df['Volume']

ax1 = plt.subplot2grid((6,1), (0,0), rowspan=5, colspan=1)
ax2 = plt.subplot2grid((6,1), (5,0), rowspan=1, colspan=1, sharex=ax1)
ax1.xaxis_date()
candlestick_ohlc(ax1, df_ohlc.values, width=2, colorup='g')
ax2.fill_between(df_volume.index.map(mdates.date2num), df_volume.values, 0)
plt.show()

после выполнения вышеуказанного кода я получаю следующее сообщение об ошибке

ValueError: недостаточно значений для распаковки (ожидается 5, получено 4)

Как устранить следующую ошибку?

1 Ответ

0 голосов
/ 09 мая 2020

Для функции Candlestick_ohl c требуется 5 значений (t, open, high, low, close), вам нужно добавить значения времени во входные данные для этой цели, вы можете использовать:

>>> values = np.hstack((np.array(df_ohlc.index).reshape(-1,1), df_ohlc.values))
>>> candlestick_ohlc(ax1, values, width=2, colorup='g')

Я также предлагаю вам использовать mplfinance вместо mpl_finance, поскольку последний устарел

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