2015-12-27 100 views
2

我是新來的Python,我奮力奔跑的matplotlib的文檔在這個例子:導入錯誤從matplotlib文檔燭臺例如:`不能導入名稱quotes_historical_yahoo_ohlc`

http://matplotlib.org/examples/pylab_examples/finance_demo.html

我基本上覆制代碼,1:1到我的Python文件,當我嘗試運行它,我得到如下所示的錯誤:

File "plot.py", line 5, in <module> 
    from matplotlib.finance import quotes_historical_yahoo_ohlc, candlestick_ohlc 
ImportError: cannot import name quotes_historical_yahoo_ohlc 

我得到了我的Mac和我的Linux機器相同的結果,所以我假設它與安裝有關或者它缺少依賴性。在Linux上我已經通過apt-get install安裝,在Mac上我已經使用pip

任何幫助或疑難解答信息將不勝感激。

+0

您正在使用什麼版本的matplotlib的('打印(matplotlib .__版本__)')? –

+0

之後matplotlib == 1.5.1只提供quotes_historical_yahoo_ohlc方法。請嘗試大於1.5.1 –

回答

3

是的,我也一樣。

因此,在光標提示我輸入:

import matplotlib 

dir(matplotlib.finance) 

...我看到了類似的項目,除了沒有「_ohlc」結尾。

['Affine2D', 'Line2D', 'LineCollection', 'PolyCollection', 'Rectangle', 
'TICKLEFT', 'TICKRIGHT', '__builtins__', '__doc__', '__file__', 
'__name__', '__package__', 'cachedir', 'candlestick', 'candlestick2', 
'colorConverter', 'contextlib', 'date2num', 'datetime', 'division', 
'fetch_historical_yahoo', 'get_cachedir', 'index_bar', 'iterable', 
'md5', 'mkdirs', 'np', 'os', 'parse_yahoo_historical', 'plot_day_summary', 
'plot_day_summary2', 'print_function', 'quotes_historical_yahoo', 
'stock_dt', 'sys', 'urlopen', 'verbose', 'volume_overlay', 
'volume_overlay2', 'volume_overlay3', 'warnings'] 

所以我剛剛刪除的最後五個字母_ohlc到處看看會發生什麼,現在對我的作品。我不確定這是否真的是100%正確。還有在2013年@tcaswell一些activity ...

enter image description here

#!/usr/bin/env python 
import matplotlib.pyplot as plt 
from matplotlib.dates import DateFormatter, WeekdayLocator,\ 
    DayLocator, MONDAY 
from matplotlib.finance import quotes_historical_yahoo, candlestick # _ohlc deleted 


# (Year, month, day) tuples suffice as args for quotes_historical_yahoo 
date1 = (2004, 2, 1) 
date2 = (2004, 4, 12) 


mondays = WeekdayLocator(MONDAY)  # major ticks on the mondays 
alldays = DayLocator()    # minor ticks on the days 
weekFormatter = DateFormatter('%b %d') # e.g., Jan 12 
dayFormatter = DateFormatter('%d')  # e.g., 12 

quotes = quotes_historical_yahoo('INTC', date1, date2) # _ohlc deleted 
if len(quotes) == 0: 
    raise SystemExit 

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) 
#ax.xaxis.set_minor_formatter(dayFormatter) 

#plot_day_summary(ax, quotes, ticksize=3) 
candlestick(ax, quotes, width=0.6) # _ohlc deleted 

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

plt.show() 
+0

是的,這似乎是伎倆。感謝您的幫助! –

+0

好的。如果你覺得它足夠好接受,不要忘記「接受」按鈕。 – uhoh

相關問題