How to plot multiple variables with Pandas and Bokeh
This changed in the latest version of Bokeh (I guess 0.12.7). This is the new way of doing it.
from bokeh.io import show, output_file
from bokeh.models import ColumnDataSource, FactorRange
from bokeh.plotting import figure

output_file(&quot;bars.html&quot;)

fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']
years = ['2015', '2016', '2017']

data = {'fruits' : fruits,
        '2015'   : [2, 1, 4, 3, 2, 4],
        '2016'   : [5, 3, 3, 2, 4, 6],
        '2017'   : [3, 2, 4, 4, 5, 3]}

# this creates [ (&quot;Apples&quot;, &quot;2015&quot;), (&quot;Apples&quot;, &quot;2016&quot;), (&quot;Apples&quot;, &quot;2017&quot;), (&quot;Pears&quot;, &quot;2015), ... ]
x = [ (fruit, year) for fruit in fruits for year in years ]
counts = sum(zip(data['2015'], data['2016'], data['2017']), ()) # like an hstack

source = ColumnDataSource(data=dict(x=x, counts=counts))

p = figure(x_range=FactorRange(*x), plot_height=250, title=&quot;Fruit Counts by Year&quot;,
           toolbar_location=None, tools=&quot;&quot;)

p.vbar(x='x', top='counts', width=0.9, source=source)

p.y_range.start = 0
p.x_range.range_padding = 0.1
p.xaxis.major_label_orientation = 1
p.xgrid.grid_line_color = None

show(p)