Ich arbeite mit vier Sätze von Daten, jeder von ihnen haben mehrere Anzahl von Zeitreihen. Ich verwende Bokeh für alle von ihnen zusammen, sieht das Ergebnis wie folgt aus Plotten:mit MultiSelect Widget zum Ausblenden und Anzeigen von Linien in Bokeh
multiline graph bokeh with 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, so wanned ich die Multiselect-Widget zu verwenden, um anzuzeigen/Verstecke alle Gruppen von Multilinien (4). Welche Art von Code muss ich bei der Erstellung des multi_line
und im Callback-Objekt für diese Interaktion verwenden?
Jede Anleitung?
Vielen Dank im Voraus.
gab es ein Problem mit der Implementierung des Listeners, können Sie den ursprünglichen Code selbst ausprobieren und überprüfen, dass die Boxen nicht die Zeilen verstecken, die zu, vielleicht war ein Crossbrowsing-Problem mit js und Chrom. Wenn Sie alle Sätze (1 in checkbox.active) ändern mit "checkbox.active.includes (1)", die den Job erledigen. sogar tho, die Antwort war wirklich hilfreich –
die 'checkbox.active.includes' Ergebnisse in' SCRIPT438: Objekt unterstützt keine Eigenschaft oder Methode 'umfasst' Datei: Funktionscode (1), Zeile: 3, Spalte: 5 'auf IE11 –
und ich stimme mit @ pablo-a sein Kommentar. Dies verdeckt nicht die richtigen Zeilen, nur die ersten * n * Zeilen, die ausgewählt sind, also, wenn Sie die Zeilen 0 und 2 auswählen, zeigt es 0 und 1 (die ersten 2) –