This docs on this page refers to a PREVIOUS VERSION. For the latest stable release, go to https://docs.bokeh.org/

Archived docs for versions <= 1.0.4 have had to be modified from their original published configuration, and may be missing some features (e.g. source listing)

All users are encourage to update to version 1.1 or later, as soon as they are able.

Bokeh Docs

stocks

< unemployment | back to Gallery | streamline >

                  import numpy as np
                  
                  from bokeh.plotting import figure, show, output_file, vplot
                  from bokeh.sampledata.stocks import AAPL, GOOG, IBM, MSFT
                  
                  def datetime(x):
                      return np.array(x, dtype=np.datetime64)
                  
                  p1 = figure(x_axis_type = "datetime")
                  p1.title = "Stock Closing Prices"
                  p1.grid.grid_line_alpha=0.3
                  p1.xaxis.axis_label = 'Date'
                  p1.yaxis.axis_label = 'Price'
                  
                  p1.line(datetime(AAPL['date']), AAPL['adj_close'], color='#A6CEE3', legend='AAPL')
                  p1.line(datetime(GOOG['date']), GOOG['adj_close'], color='#B2DF8A', legend='GOOG')
                  p1.line(datetime(IBM['date']), IBM['adj_close'], color='#33A02C', legend='IBM')
                  p1.line(datetime(MSFT['date']), MSFT['adj_close'], color='#FB9A99', legend='MSFT')
                  
                  aapl = np.array(AAPL['adj_close'])
                  aapl_dates = np.array(AAPL['date'], dtype=np.datetime64)
                  
                  window_size = 30
                  window = np.ones(window_size)/float(window_size)
                  aapl_avg = np.convolve(aapl, window, 'same')
                  
                  p2 = figure(x_axis_type="datetime")
                  p2.title = "AAPL One-Month Average"
                  p2.grid.grid_line_alpha = 0
                  p2.xaxis.axis_label = 'Date'
                  p2.yaxis.axis_label = 'Price'
                  p2.ygrid.band_fill_color = "olive"
                  p2.ygrid.band_fill_alpha = 0.1
                  
                  p2.circle(aapl_dates, aapl, size=4, legend='close',
                            color='darkgrey', alpha=0.2)
                  
                  p2.line(aapl_dates, aapl_avg, legend='avg', color='navy')
                  
                  output_file("stocks.html", title="stocks.py example")
                  
                  show(vplot(p1,p2))  # open a browser