【发布时间】:2019-08-08 14:40:12
【问题描述】:
基本上我想要一个包含 3 个子图的图表。第二个图将是烛台图,是我目前正在处理的图。但是,我不断收到“没有足够的值来解包”错误,我真的不知道为什么???
start = dt.datetime(2016,1,1)
end = dt.datetime(2016,12,31)
fig = plt.figure()
ax1 = plt.subplot2grid((6,1), (0,0), rowspan = 1, colspan = 1)
ax2 = plt.subplot2grid((6,1), (1,0), rowspan = 4, colspan = 1)
ax3 = plt.subplot2grid((6,1), (5,0), rowspan = 1, colspan = 1)
df2 = pdr.data.DataReader('TSLA', 'yahoo', startdate, enddate)
df2.drop('Adj Close', axis = 1, inplace = True)
MA20 = df2['Close'].rolling(20).mean()
MA50 = df2['Close'].rolling(50).mean()
cols = ['Open', 'High', 'Low', 'Close', 'Volume']
df2 = df2[cols] #reordering columns to OHLC order
candlestick_ohlc(ax2, df2, width=0.4, colorup='#77d879', colordown='#db3f3f')
plt.show()
我收到此错误:
>---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-329-f2bd49065390> in <module>
18 df2 = df2[cols]
19
---> 20 candlestick_ohlc(ax2, df2, width=0.4, colorup='#77d879', colordown='#db3f3f')
21
22 ax1.plot(MA20, label = '20-day')
>c:\users\cecilia\appdata\local\programs\python\python35\lib\site-packages\mpl_finance.py in candlestick_ohlc(ax, quotes, width, colorup, colordown, alpha)
234 return _candlestick(ax, quotes, width=width, colorup=colorup,
235 colordown=colordown,
--> 236 alpha=alpha, ochl=False)
237
238
>c:\users\cecilia\appdata\local\programs\python\python35\lib\site-packages\mpl_finance.py in _candlestick(ax, quotes, width, colorup, colordown, alpha, ochl)
281 t, open, close, high, low = q[:5]
282 else:
--> 283 t, open, high, low, close = q[:5]
284
285 if close >= open:
>ValueError: not enough values to unpack (expected 5, got 4)
我得到的图表似乎也不正确。它是全红色的,但对于收盘价高于开盘价的烛台,我将颜色设置为绿色,但没有出现绿色蜡烛。我已经按照 'OHLC' 的顺序排列了与函数相对应的列,所以我也不知道为什么会这样。
【问题讨论】:
-
请粘贴完整的错误信息。错误回溯将指向导致问题的确切行。
-
还要检查 minimal reproducible example 并确保您的代码是 1。
-
@Error-SyntacticalRemorse 好的,我已经这样做了!
-
@ImportanceOfBeingErnest 我已经编辑了代码!谢谢
-
哦,您似乎忘记提供任何日期或时间值了。
标签: python-3.x matplotlib candlestick-chart