2015-12-27 83 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

相关问题