Verwenden des MultiSelect-Widgets zum Ein- und Ausblenden von Linien in bokeh

Ich arbeite mit vier Datensätzen, von denen jeder mehrere Zeitreihen hat. Ich verwende Bokeh, um alle zusammen zu zeichnen. Das Ergebnis sieht folgendermaßen aus:

Mehrliniendiagramm Bokeh mit Widget

from bokeh.plotting import figure, output_file, show
from bokeh.palettes import RdYlGn4
from bokeh.models import CustomJS, ColumnDataSource, MultiSelect
from bokeh.layouts import row, widgetbox

output_file("graph.html")
p = figure(plot_width=1000, plot_height=400, x_axis_type="datetime", title="title")
cadena=range(4)
for i,comp in enumerate(cadena):
    ts=[t for t in data_plu_price.columns if int(t) in df.T[df.C==comp].values]
    n_lines=len(data[ts].columns) 
    p.multi_line(xs=[data[ts].index.values]*n_lines, ys=[data[t].values for t in ts],line_color=RdYlGn4[i], legend=str(i))
p.title.align = "center"
p.title.text_font_size = "20px"
p.xaxis.axis_label = 'date'
p.yaxis.axis_label = 'price'

callback = CustomJS("""Some Code""")
multi_select = MultiSelect(title="Select:", value=cadena,
                       options=[(str(i), str(i)) for i in range(4)])
layout = row(p,widgetbox(multi_select))
show(layout)

das Problem ist, dass es wirklich chaotisch aussieht, also wollte ich das Multiselect-Widget verwenden, um alle Gruppen von Mehrfachleitungen anzuzeigen / auszublenden (4). Welche Art von Code muss ich bei der Erstellung des @ verwendmulti_lineund im Callback-Objekt für diese Interaktion?

Irgendeine Anleitung?

Danke im Voraus

Antworten auf die Frage(2)

Ihre Antwort auf die Frage