2
我想創建一個帶有2個y軸的繪圖,其範圍在點擊按鈕時更新。該腳本將在Bokeh服務器上運行。請注意,在下面的代碼中,通過更改f.y_range.start/end來更新主要y軸。但是,這對於第二y軸是不可能的。我試過其他兩個命令來代替,即散景,Python:如何更新額外軸的範圍
f.extra_y_ranges.update({"y2Range": Range1d(start=0, end=50)})
和
f.extra_y_ranges.update = {"y2Range": Range1d(start=0, end=50)}
但他們沒有工作。
一個類似的問題在這裏問:Bokeh: How to change extra axis visibility
# 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)
非常感謝!我現在面臨着一個新的問題,即軸線賦值給線條符號。也許你有一個想法如何解決它。找到說明[這裏](http://stackoverflow.com/questions/42814842/python-bokeh-how-to-assign-extra-y-axis-to-line-glyph-in-streaming-plot)。 – Julian