In [1]:
from bokeh.io import output_notebook, show
output_notebook()


BokehJS successfully loaded.

In [13]:
import pandas as pd
from bokeh.sampledata import stocks

ibm = pd.DataFrame(stocks.IBM)
ibm.date = pd.to_datetime(ibm.date)
ibm.head()


Out[13]:
adj_close close date high low open volume
0 84.48 100.25 2000-03-01 105.50 100.06 102.00 10807800
1 86.90 103.12 2000-03-02 105.44 99.50 100.50 11192900
2 91.01 108.00 2000-03-03 110.00 106.06 107.25 10162800
3 86.85 103.06 2000-03-06 111.00 101.00 109.94 10747400
4 86.80 103.00 2000-03-07 107.00 101.69 106.00 10035100

In [6]:
ibm.volume.min()


Out[6]:
1027500

In [46]:
from bokeh.io import output_notebook, show
output_notebook()

import pandas as pd
from bokeh.sampledata import stocks

ibm = pd.DataFrame(stocks.IBM)
ibm.date = pd.to_datetime(ibm.date)

from datetime import datetime
from bokeh.models import (
    ColumnDataSource, 
    Range1d, 
    Plot, 
    DatetimeAxis, 
    LinearAxis,
    DatetimeTickFormatter,
    DatetimeTicker,
    Line,
    WheelZoomTool,
)
from bokeh.properties import value

source = ColumnDataSource(ibm)
xdr = Range1d(ibm.date.min(), ibm.date.max())
ydr = Range1d(ibm.volume.min(), ibm.volume.max())
PLOT_FORMATS = dict(
    x_range=xdr,
    y_range=ydr,
    title="",
    plot_width=600,
    plot_height=400,
    outline_line_color=None,
    toolbar_location=None,    
)
AXIS_FORMATS = dict(
    minor_tick_in=None,
    minor_tick_out=None,
    major_tick_in=None,
    major_label_text_font_size="10pt",
    major_label_text_font_style="normal",
    axis_label_text_font_size="10pt",

    axis_line_color='#AAAAAA',
    major_tick_line_color='#AAAAAA',
    major_label_text_color='#666666',

    major_tick_line_cap="round",
    axis_line_cap="round",
    axis_line_width=1,
    major_tick_line_width=1,
)

formatter = DatetimeTickFormatter(
    formats=dict(
        hours=["%B %Y"],
        days=["%B %Y"],
        months=["%B %Y"],
        years=["%B %Y"],
    )
)

xaxis = DatetimeAxis(formatter=formatter, ticker=DatetimeTicker(desired_num_ticks=3), **AXIS_FORMATS)
default_x = DatetimeAxis(**AXIS_FORMATS)

yaxis = LinearAxis(axis_label="volume", **AXIS_FORMATS)   

line = Line(x='date', y='volume', line_color=value('darkcyan'), line_width=5)

plot = Plot(**PLOT_FORMATS)
plot.add_layout(default_x, 'above')
plot.add_layout(xaxis, 'below')
plot.add_layout(yaxis, 'left')
plot.add_glyph(source, line)
plot.add_tools(WheelZoomTool(dimensions=['width']))
show(plot)



In [ ]: