Bokeh,Python:如何更新额外轴的范围

Bokeh,Python:如何更新额外轴的范围,python,bokeh,multiple-axes,Python,Bokeh,Multiple Axes,我想创建一个带有两个y轴的绘图,其范围将在单击按钮时更新。该脚本将在Bokeh服务器上运行。请注意,在下面的代码中,通过更改f.y_range.start/end来更新主y轴。但是,对于辅助y轴,这是不可能的。我尝试了另外两个命令,即 f.extra_y_ranges.update({"y2Range": Range1d(start=0, end=50)}) 及 但它们都不起作用 这里也提出了类似的问题: 我也面临着类似的问题。我可以通过“extra_y_axis”(额外y_轴)dict(通过

我想创建一个带有两个y轴的绘图,其范围将在单击按钮时更新。该脚本将在Bokeh服务器上运行。请注意,在下面的代码中,通过更改f.y_range.start/end来更新主y轴。但是,对于辅助y轴,这是不可能的。我尝试了另外两个命令,即

f.extra_y_ranges.update({"y2Range": Range1d(start=0, end=50)})

但它们都不起作用

这里也提出了类似的问题:


我也面临着类似的问题。我可以通过“extra_y_axis”(额外y_轴)dict(通过我创建它的名称)来更新次轴的范围。对于您的情况,它应该类似于:



谢谢!我现在面临一个新的问题,轴分配给线条轮廓。也许你有办法解决这个问题。找到描述。
f.extra_y_ranges.update = {"y2Range": Range1d(start=0, end=50)}
# 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)
# Update primary axis function
def update_axis():
    f.y_range.start = 0 
    f.y_range.end   = 50   

# Update secondary axis function
def update_secondary_axis():
    f.extra_y_ranges['y2Range'].start = -20 #new secondary axis min
    f.extra_y_ranges['y2Range'].end = 80 #new secondary axis max