Ich möchte eine Bokeh-App mit einem interaktiven Widget ausführen, kann es aber nicht voll funktionsfähig machen.Laufendes Bokeh mit interaktiven Widgets
Mein Code demo.py
:
# imports
import pandas as pd
from bokeh.io import curdoc
from bokeh.layouts import column
from bokeh.models import ColumnDataSource, Dropdown
from bokeh.plotting import figure
from bokeh.sampledata.iris import flowers
# Data
df = pd.DataFrame({'x': flowers['sepal_length'], 'y': flowers['sepal_width'], 'species': flowers['species']})
# Source
SPECIES = 'versicolor'
source = ColumnDataSource(df.loc[df.species == SPECIES])
# Create plots and widgets
plot = figure()
plot.circle(x= 'x', y='y', source=source)
menu = [("setosa", "setosa"), ("versicolor", "versicolor"), None, ("virginica", "virginica")]
dropdown = Dropdown(label="Dropdown species", button_type="warning", menu=menu)
# Add callback to widgets
def callback(attr, old, new):
SPECIES = dropdown.value
source.data=ColumnDataSource(df.loc[df.species == SPECIES])
dropdown.on_change('value', callback)
# Arrange plots and widgets in layouts
layout = column(dropdown, plot)
curdoc().add_root(layout)
Wenn ich diese App aus der Kommandozeilen-Schnittstelle ausgeführt mit bokeh serve --show demo.py
, es gibt eine HTML-Seite mit einem Grundstück. Das Dropdown scheint zu funktionieren, aber das Diagramm ändert sich nicht, wenn ein Wert aus dem Dropdown ausgewählt wird.
Irgendwelche Vorschläge, wie Sie das beheben können?
Vielen Dank für Ihre Hilfe und sanften Vorschlag ;-) – Rene