%pylab inline from IPython import parallel rc = parallel.Client() dv = rc[:] lbv = rc.load_balanced_view() %%px import urllib2 from io import BytesIO from matplotlib import finance def get_yahoo_data(name=None, start=None, end=None): """return historical stock data from yahoo as a recarray.""" fp = finance.fetch_historical_yahoo(name, start, end) return finance.parse_yahoo_historical(fp, asobject=True) def relative_close(records): """return the reative change in closing price over the interval""" close = records['aclose'] return (close[-1] - close[0]) / close[0] %%px import datetime end = datetime.datetime.now() start = end - datetime.timedelta(days=365) ticker = ['AAPL', 'GOOG', 'MSFT', 'RIMM', 'NOK', 'ORCL', 'AMZN', 'INTC', 'ATVI', 'EA', 'NFLX'] def year_over_year(name): """fetch data, and return year-over-year change (relative to first close) in percent """ stock = get_yahoo_data(name, start, end) return relative_close(stock) * 100 amr = lbv.map(year_over_year, ticker) amr fig, ax = subplots() fig.set_figwidth(10) ax.bar(range(len(amr)), amr) ax.set_xticks(np.arange(len(amr))+0.4) ax.set_xticklabels(ticker); ax.axhline(0, c='k')