Как скрыть строку по умолчанию при использовании флажка в боке - PullRequest
0 голосов
/ 16 мая 2019

Мы можем легко создать интерактивный график с Bokeh, где пользователь может включать и выключать линию, но я не нашел способа скрыть линию по умолчанию (т.е. до того, как пользователь установит флажок).Например, код ниже вроде работает, но когда пользователь впервые загружает страницу, по умолчанию все строки включены, даже если они не активны (active = []).Затем пользователь должен установить флажки, чтобы они исчезли, а затем установить флажок для отображения строки, которая неуклюжа.Так как же скрыть строки по умолчанию, прежде чем пользователь выберет одну из них?

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(90))
  y0 = [ a**1.5 for a in x]
  y1 = [ a**1.55 for a in x]
  y2 = [ a**1.60 for a in x]
  y3 = [ a**1.65 for a in x]

  l0 = plot.line(x, y0, color='red')
  l1 = plot.line(x, y1, color='red')
  l2 = plot.line(x, y2, color='red')
  l3 = plot.line(x, y3, color='red')

  checkbox = CheckboxGroup(labels=["l0",  "l1", "l2", "l3"], active=[])
  checkbox.callback = CustomJS(args=dict(l0=l0, l1=l1, l2=l2, l3=l3, checkbox=checkbox),
                             code="""
                                  l0.visible = 0 in checkbox.active;
                                  l1.visible = 1 in checkbox.active;
                                  l2.visible = 2 in checkbox.active;
                                  l3.visible = 2 in checkbox.active;
                                  """)
layout = row(checkbox, plot)
show(layout)


1 Ответ

1 голос
/ 16 мая 2019

Вы можете установить .visible = False в коде Python для любого, который вы хотите начать с невидимого.

...