Not able to generate a bar graph for twin y-axis in bokeh

I would like to come up with a bar graph for twin y-axis with an offset where a graph of one color corresponds to one y-axis and a graph of another color corresponds to the second y axis.
This is the code I used:


from bokeh.io import output_notebook
import pandas as pd
from math import pi
from datetime import datetime as dt
from bokeh.plotting import figure, output_file, show
from bokeh.models import NumeralTickFormatter, DatetimeTickFormatter, HoverTool, Range1d, LinearAxis, ColumnDataSource
output_notebook()

studios = [‘Buena Vista’ , ‘Universal’ , ‘Warner Bros.’, ‘Paramount’, ‘DreamWorks SKG’, ‘20th Century Fox’, ‘Sony/Columbia’,

‘New Line’ , ‘Miramax’ , ‘Dimension Films’ , ‘MGM/UA’ , ‘USA Films’, ‘Artisan’, ‘IMAX’ ,

‘Destination’, ‘Sony Classics’, ‘Lionsgate’ , ‘Fine Line’ , ‘Fox Searchlight’, ‘Focus Features’, ‘Paramount Classics’,

‘MacGillivray Freeman Films’ , ‘TSG’ , ‘Trimark’, ‘Eros’, ‘N Wave’ , ‘Zion’ , ‘Cowboy’ , ‘Yash Raj’ , ‘First Look’,

‘Equinox’ , ‘Rainforest’ , ‘Kino’ , ‘Empire’ , ‘Indican’ , ‘Iron’ , ‘Video Sound’, ‘Zeitgeist’, ‘Hombre’ , ‘Odeon’,

‘Lot 47’, ‘New Yorker’ , ‘Providence’, ‘New Latin’, ‘Winstar’ , ‘Artistic License’, ‘Rialto’ , ‘Strand’ , ‘7th Art’,

‘Little Villa’, ‘Cinema Libre’, ‘First Run’ , ‘North by Northwest’ , ‘Cho’ , ‘IDP’ , ‘Wellspring’ , ‘Unapix Ent.’,

‘Palm’ , ‘Castle Hill’ , ‘Stratosphere’ , ‘Phaedra’ , ‘Shooting Gallery’ , ‘Vid.’ , ‘Samuel Goldwyn’,‘Picture Me Rollin’,

‘Independent Artists’, ‘Alliance’, ‘Manga’, ‘IFC’ , ‘Seville’ , ‘Palisades Ent.’, ‘Silver Nitrate’ , ‘Roxie’ , ‘CanWest Films’,

‘Regent Releasing’, ‘Arrow Releasing’, ‘Keystone’, ‘Film Acres’, ‘Redeemable’, ‘Unknown’ , ‘Venice Film Merchants’,

‘Hollywood Classics’ , ‘Monarch’ ]

p = figure(title=“Market shares in 2000”, plot_width=2000, plot_height=800, x_range= studios ,

y_range=Range1d(start=0, end=16),

x_axis_label=‘Studios’, y_axis_label=‘Market shares (in %)’,

toolbar_location=‘below’,

toolbar_sticky=False,

tools=[‘reset’, ‘save’],

active_scroll=None, active_drag=None, active_tap=None

)

movies = [30, 19, 28, 19, 12, 17, 34, 16, 27, 2, 8, 18, 11, 11, 5, 19, 20, 11, 8, 2, 7, 1, 2, 3, 19, 1, 1,

3, 2, 3, 1, 1, 4, 2, 4, 1, 2, 1, 1, 2, 3, 6, 3, 2, 2, 3, 1, 5, 3, 1, 1, 3, 1, 1, 2, 1, 2, 1, 2, 1, 4,

4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1]

share = [15.5, 14.1, 11.9 , 10.4, 10.3, 9.5, 9.0, 4.9, 4.8, 1.5, 1.4, 1.2, 1.0, 0.8, 0.7, 0.6, 0.4, 0.3, 0.3, 0.2, 0.2,

0.2, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,

0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,

0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]

p.extra_y_ranges= {“foo”: Range1d(start=0, end=35)}

p.add_layout(LinearAxis(y_range_name = “foo”, axis_label = ‘Movies tracked’), ‘right’)

p.vbar(bottom=0, top= [15.5, 14.1, 11.9 , 10.4, 10.3, 9.5, 9.0, 4.9, 4.8, 1.5, 1.4, 1.2, 1.0, 0.8, 0.7, 0.6, 0.4, 0.3, 0.3, 0.2, 0.2,

0.2, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,

0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,

0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], x=[‘Buena Vista:0.35’ , ‘Universal:0.35’ , ‘Warner Bros.:0.35’, ‘Paramount:0.35’, ‘DreamWorks SKG:0.35’, ‘20th Century Fox:0.35’, ‘Sony/Columbia:0.35’,

‘New Line:0.35’ , ‘Miramax:0.35’ , ‘Dimension Films:0.35’ , ‘MGM/UA:0.35’ , ‘USA Films:0.35’, ‘Artisan:0.35’, ‘IMAX:0.35’ ,

‘Destination:0.35’, ‘Sony Classics:0.35’, ‘Lionsgate:0.35’ , ‘Fine Line:0.35’ , ‘Fox Searchlight:0.35’, ‘Focus Features:0.35’, ‘Paramount Classics:0.35’,

‘MacGillivray Freeman Films:0.35’ , ‘TSG:0.35’ , ‘Trimark:0.35’, ‘Eros:0.35’, ‘N Wave:0.35’ , ‘Zion:0.35’ , ‘Cowboy:0.35’ , ‘Yash Raj:0.35’ , ‘First Look:0.35’,

‘Equinox:0.35’ , ‘Rainforest:0.35’ , ‘Kino:0.35’ , ‘Empire:0.35’ , ‘Indican:0.35’ , ‘Iron:0.35’ , ‘Video Sound:0.35’, ‘Zeitgeist:0.35’, ‘Hombre:0.35’ , ‘Odeon:0.35’,

‘Lot 47:0.35’, ‘New Yorker:0.35’ , ‘Providence:0.35’, ‘New Latin:0.35’, ‘Winstar:0.35’ , ‘Artistic License:0.35’, ‘Rialto:0.35’ , ‘Strand:0.35’ , ‘7th Art:0.35’,

‘Little Villa:0.35’, ‘Cinema Libre:0.35’, ‘First Run:0.35’ , ‘North by Northwest:0.35’ , ‘Cho:0.35’ , ‘IDP:0.35’ , ‘Wellspring:0.35’ , ‘Unapix Ent.:0.35’,

‘Palm:0.35’ , ‘Castle Hill:0.35’ , ‘Stratosphere:0.35’ , ‘Phaedra:0.35’ , ‘Shooting Gallery:0.35’ , ‘Vid.:0.35’ , ‘Samuel Goldwyn:0.35’,‘Picture Me Rollin:0.35’,

‘Independent Artists:0.35’, ‘Alliance:0.35’, ‘Manga:0.35’, ‘IFC:0.35:0.35’ , ‘Seville:0.35’ , ‘Palisades Ent.:0.35’, ‘Silver Nitrate:0.35’ , ‘Roxie:0.35’ , ‘CanWest Films:0.35’,

‘Regent Releasing:0.35’, ‘Arrow Releasing:0.35’, ‘Keystone:0.35’, ‘Film Acres:0.35’, ‘Redeemable:0.35’, ‘Unknown:0.35’ , ‘Venice Film Merchants:0.35’,

‘Hollywood Classics:0.35’ , ‘Monarch:0.35’ ], color=‘blue’, legend=“Market share”, width=0.3, alpha=0.5)

p.vbar(bottom=0, top=[30, 19, 28, 19, 12, 17, 34, 16, 27, 2, 8, 18, 11, 11, 5, 19, 20, 11, 8, 2, 7, 1, 2, 3, 19, 1, 1,

3, 2, 3, 1, 1, 4, 2, 4, 1, 2, 1, 1, 2, 3, 6, 3, 2, 2, 3, 1, 5, 3, 1, 1, 3, 1, 1, 2, 1, 2, 1, 2, 1, 4,

4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1], x=[‘Buena Vista:0.65’ , ‘Universal:0.65’ , ‘Warner Bros.:0.65’, ‘Paramount:0.65’, ‘DreamWorks SKG:0.65’, ‘20th Century Fox:0.65’, ‘Sony/Columbia:0.65’,

‘New Line:0.65’ , ‘Miramax:0.65’ , ‘Dimension Films:0.65’ , ‘MGM/UA:0.65’ , ‘USA Films:0.65’, ‘Artisan:0.65’, ‘IMAX:0.65’ ,

‘Destination:0.65’, ‘Sony Classics:0.65’, ‘Lionsgate:0.65’ , ‘Fine Line:0.65’ , ‘Fox Searchlight:0.65’, ‘Focus Features:0.65’, ‘Paramount Classics:0.65’,

‘MacGillivray Freeman Films:0.65’ , ‘TSG:0.65’ , ‘Trimark:0.65’, ‘Eros:0.65’, ‘N Wave:0.65’ , ‘Zion:0.65’ , ‘Cowboy:0.65’ , ‘Yash Raj:0.65’ , ‘First Look:0.65’,

‘Equinox:0.65’ , ‘Rainforest:0.65’ , ‘Kino:0.65’ , ‘Empire:0.65’ , ‘Indican:0.65’ , ‘Iron:0.65’ , ‘Video Sound:0.65’, ‘Zeitgeist:0.65’, ‘Hombre:0.65’ , ‘Odeon:0.65’,

‘Lot 47:0.65’, ‘New Yorker:0.65’ , ‘Providence:0.65’, ‘New Latin:0.65’, ‘Winstar:0.65’ , ‘Artistic License:0.65’, ‘Rialto:0.65’ , ‘Strand:0.65’ , ‘7th Art:0.65’,

‘Little Villa:0.65’, ‘Cinema Libre:0.65’, ‘First Run:0.65’ , ‘North by Northwest:0.65’ , ‘Cho:0.65’ , ‘IDP:0.65’ , ‘Wellspring:0.65’ , ‘Unapix Ent.:0.65’,

‘Palm:0.65’ , ‘Castle Hill:0.65’ , ‘Stratosphere:0.65’ , ‘Phaedra:0.65’ , ‘Shooting Gallery:0.65’ , ‘Vid.:0.65’ , ‘Samuel Goldwyn:0.65’,‘Picture Me Rollin:0.65’,

‘Independent Artists:0.65’, ‘Alliance:0.65’, ‘Manga:0.65’, ‘IFC:0.65’ , ‘Seville:0.65’ , ‘Palisades Ent.:0.65’, ‘Silver Nitrate:0.65’ , ‘Roxie:0.65’ , ‘CanWest Films:0.65’,

‘Regent Releasing:0.65’, ‘Arrow Releasing:0.65’, ‘Keystone:0.65’, ‘Film Acres:0.65’, ‘Redeemable:0.65’, ‘Unknown:0.65’ , ‘Venice Film Merchants:0.65’,

‘Hollywood Classics:0.65’ , ‘Monarch:0.65’ ], color=‘green’, legend = ‘Movies tracked’, width=0.3, alpha=0.8,

y_range_name=‘foo’)

p.yaxis[0].formatter = NumeralTickFormatter(format=‘0.0’)

p.xaxis.major_label_orientation = pi/4

output_file(“marketshare.html”)

show(p)

The above code throws an error

Bokeh Error

Unable to get property 'value' of undefined or null reference

Could you please help me in getting to know what exactly does this error mean and where in the code is the error?
Thank you very much