2017-10-15 114 views
1

我想绘制一个蜡烛棒图在python中。这里是我的代码在Python中绘制蜡烛棒

from pandas_datareader import data as pdr 
import plotly.plotly as py 
import plotly.graph_objs as go 
import fix_yahoo_finance as yf 

yf.pdr_override() 
mcd = pdr.get_data_yahoo("MCD", start="2004-01-01", end="2005-07-31") 
mcd_candle = go.Candlestick(x=mcd.index,open=mcd.Open,high=mcd.High,low=mcd.Low,close=mcd.Close) 
data = [mcd_candle] 
py.iplot(data, filename='Candle Stick') 

这是错误我得到

PlotlyError: Because you didn't supply a 'file_id' in the call, we're assuming you're trying to snag a figure from a url. You supplied the url, '', we expected it to start with 'https://plot.ly'. 

任何想法,我怎么能画K线?

回答

3

问题必须是因为您没有提供usernameapi key,您将从https://plot.ly/settings/api链接中获得。如果您想使用plotly online创建此图表。首先创建一个帐户,然后获取usernameapi key并将其插入到下面的代码中。

from pandas_datareader import data as pdr 
import plotly.plotly as py 
import plotly.graph_objs as go 
import fix_yahoo_finance as yf 
py.sign_in('<<username here>>', '<<api key here>>') 
yf.pdr_override() 
mcd = pdr.get_data_yahoo("MCD", start="2004-01-01", end="2005-07-31") 
mcd_candle = go.Candlestick(x=mcd.index,open=mcd.Open,high=mcd.High,low=mcd.Low,close=mcd.Close) 
data = [mcd_candle] 
py.iplot(data, filename='Candle Stick') 

有使用plotly offline,并不需要所有这些程序的另一种选择,请看下面的实现代码。

from pandas_datareader import data as pdr 
import plotly.offline as py_offline 
import plotly.graph_objs as go 
import fix_yahoo_finance as yf 
py_offline.init_notebook_mode() 

yf.pdr_override() 
mcd = pdr.get_data_yahoo("MCD", start="2004-01-01", end="2005-07-31") 
mcd_candle = go.Candlestick(x=mcd.index,open=mcd.Open,high=mcd.High,low=mcd.Low,close=mcd.Close) 
data = [mcd_candle] 
py_offline.iplot(data, filename='Candle Stick') 
#for Spyder plotting use the below line instead 
#py_offline.plot(data, filename='Candle Stick') 

请务必安装pandas_datareaderfix_yahoo_finance使用pip库,如果这些库不存在!

+0

通过实施您的离线方法,我的代码正在运行,但没有看到图形输出。代码运行时没有任何错误。我正在使用Anaconda - Spyder。 Python 3.x –

+0

@DebdiptaMajumdar对不起,你需要在使用spyder时使用'py_offline.plot'而不是'py_offline.iplot',请参考[here](https://stackoverflow.com/questions/35315726/visualize- plotly-charts-in-spyder) –

+0

Naren Murali 非常感谢它的工作 你的天才:) –