Sto provando a utilizzare i pulsanti di attivazione in Bokeh per creare un sito Web interattivo in cui un utente può fare clic sui pulsanti per selezionare i grafici da tracciare.caricare i dati del grafico dai file al clic del pulsante con bokeh
I pulsanti caricheranno i dati da un file di testo (contenente due colonne x e y dati). i file di dati hanno due colonne contenenti dati xey separati da uno spazio.
Quando i pulsanti di commutazione sono selezionati, i dati corrispondenti verranno tracciati, il grafico verrà rimosso quando il pulsante di commutazione viene deselezionato.
Attualmente sto riscontrando problemi nel passare un argomento all'evento di callback, è possibile?
from bokeh.io import vform
from bokeh.models import CustomJS, ColumnDataSource
from bokeh.models.widgets import Toggle
from bokeh.plotting import figure, output_file, show
output_file("load_data_buttons.html")
x = [0]
y = x
source = ColumnDataSource(data=dict(x=x, y=y))
plot = figure(plot_width=400, plot_height=400)
plot.line('x', 'y', source=source, line_width=3, line_alpha=0.6)
callback = CustomJS(args=filename,dict(source=source), code="""
var data = source.get('data');
console.log(filename)
x = data['x']
y = data['y']
#load data stored in the file name and assign to x and y
source.trigger('change');
""")
toggle1 = Toggle(label="Load data file 1", type="success",callback=callback("data_file_1.txt"))
toggle2 = Toggle(label="Load data file 2", type="success",callback=callback("data_file_2.txt"))
layout = vform(toggle1, toggle2, plot)
show(layout)
Grazie per la risposta HYRY. Questo è davvero bello l'unico problema è che ho centinaia di file di dati che si traducono in molti mb di dati. In realtà non voglio precaricare tutto in anticipo, poiché ciò richiederebbe molto tempo. Sei a conoscenza di un modo per caricare i dati quando si fa clic sui pulsanti. – Jon
Quindi è necessario creare una funzione javascript per analizzare il file csv, ecco un esempio: http://stackoverflow.com/questions/7431268/how-to-read-data-from-csv-file-using-javascript – HYRY
Molte grazie , questa combinazione di risposte ha risolto il mio problema. Molto apprezzato. – Jon