title: Bokeh, Python: How to update range of extra axis
body: <p>I would like to create a plot with 2 y-axes, whose ranges are being updated on a button click. The script would run on a Bokeh server. Note that in the code below, the primary y-axis is being updated by changing f.y_range.start/end. However, this is not possible with the secondary y-axis. I tried two other commands instead, i.e. </p>
  
  <pre><code>f.extra_y_ranges.update({"y2Range": Range1d(start=0, end=50)})
  </code></pre>
  
  <p>and</p>
  
  <pre><code>f.extra_y_ranges.update = {"y2Range": Range1d(start=0, end=50)}
  </code></pre>
  
  <p>But none of them work. </p>
  
  <p>A similar questions was asked here: <a href="https://stackoverflow.com/questions/38664831/bokeh-how-to-change-extra-axis-visibility">Bokeh: How to change extra axis visibility</a></p>
  
  <pre><code># Import libraries
  from bokeh.io import curdoc
  from bokeh.models import ColumnDataSource, Range1d, LinearAxis
  from bokeh.models.widgets import Button
  from bokeh.layouts import layout
  from bokeh.plotting import figure
  
  
  # Create figure
  f=figure()
  
  # Create ColumnDataSource
  source = ColumnDataSource(dict(x=range(0,100),y=range(0,100)))
  
  # Create Line
  f.line(x='x',y='y',source=source)
  f.extra_y_ranges = {"y2Range": Range1d(start=0, end=100)}
  f.add_layout(LinearAxis(y_range_name='y2Range'), 'left')
  
  # Update axis function
  def update_axis():
      f.y_range.start = 0 
      f.y_range.end   = 50
  
  # Create Button
  button = Button(label='Set Axis')
  
  # Update axis range on click
  button.on_click(update_axis)
  
  # Add elements to curdoc 
  lay_out=layout([[f, button]])
  curdoc().add_root(lay_out)
  </code></pre>