如何在 Bokeh 中显示或隐藏图形线
How to show or hide a graph line in Bokeh
我们如何再次在 Bokeh 中打开和关闭(隐藏或显示)一条线?下面的示例图没有更新。
from bokeh.io import output_file, show
from bokeh.layouts import row
from bokeh.plotting import figure
from bokeh.models import CheckboxGroup, CustomJS
output_file("toggle_lines.html")
### Main plot
plot = figure()
# Dummy data for testing
x = list(range(25))
y0 = [ 3**a for a in x]
l0 = plot.line(x, y0, color='blue')
l0.visible = False
checkbox = CheckboxGroup(labels=["l0"], active=[1])
checkbox.js_on_click(CustomJS(args=dict(l0=l0), code="""l0.visible = 0 in checkbox.active;"""))
layout = row(checkbox, plot)
show(layout)
谢谢,
两个主要的东西:
- 您的
active
参数应该是 [0]
表示组中的第 0 个复选框应该是活动的,或者不应该提供,表示所有复选框的默认状态应该是非活动的。通过指示 [1]
你告诉散景实际上有 2 个复选框,其中 1 个处于活动状态,这会导致错误。
- 您需要通过回调中的
args
将您的复选框对象传递到 javascript 代码中(您已经使用该行完成了此操作,只需要包含复选框组还有。
这段代码对我有用:
from bokeh.io import output_file, show
from bokeh.layouts import row
from bokeh.plotting import figure
from bokeh.models import CheckboxGroup, CustomJS
output_file("toggle_lines.html")
### Main plot
plot = figure(x_range=(0, 25))
# Dummy data for testing
x = list(range(25))
y0 = [ 3**a for a in x]
l0 = plot.line(x, y0, color='blue')
l0.visible = False
checkbox = CheckboxGroup(labels=["l0"])
checkbox.js_on_click(CustomJS(args=dict(l0=l0, checkbox=checkbox), code="""l0.visible = 0 in checkbox.active;"""))
layout = row(checkbox, plot)
show(layout)
我们如何再次在 Bokeh 中打开和关闭(隐藏或显示)一条线?下面的示例图没有更新。
from bokeh.io import output_file, show
from bokeh.layouts import row
from bokeh.plotting import figure
from bokeh.models import CheckboxGroup, CustomJS
output_file("toggle_lines.html")
### Main plot
plot = figure()
# Dummy data for testing
x = list(range(25))
y0 = [ 3**a for a in x]
l0 = plot.line(x, y0, color='blue')
l0.visible = False
checkbox = CheckboxGroup(labels=["l0"], active=[1])
checkbox.js_on_click(CustomJS(args=dict(l0=l0), code="""l0.visible = 0 in checkbox.active;"""))
layout = row(checkbox, plot)
show(layout)
谢谢,
两个主要的东西:
- 您的
active
参数应该是[0]
表示组中的第 0 个复选框应该是活动的,或者不应该提供,表示所有复选框的默认状态应该是非活动的。通过指示[1]
你告诉散景实际上有 2 个复选框,其中 1 个处于活动状态,这会导致错误。 - 您需要通过回调中的
args
将您的复选框对象传递到 javascript 代码中(您已经使用该行完成了此操作,只需要包含复选框组还有。
这段代码对我有用:
from bokeh.io import output_file, show
from bokeh.layouts import row
from bokeh.plotting import figure
from bokeh.models import CheckboxGroup, CustomJS
output_file("toggle_lines.html")
### Main plot
plot = figure(x_range=(0, 25))
# Dummy data for testing
x = list(range(25))
y0 = [ 3**a for a in x]
l0 = plot.line(x, y0, color='blue')
l0.visible = False
checkbox = CheckboxGroup(labels=["l0"])
checkbox.js_on_click(CustomJS(args=dict(l0=l0, checkbox=checkbox), code="""l0.visible = 0 in checkbox.active;"""))
layout = row(checkbox, plot)
show(layout)