LoslegenKostenlos starten

Linienplots mit Select ändern

Für deine letzte Aufgabe hat dich der Hedgefonds gebeten, Visualisierungen zu erstellen, die eine Analyse der Aktienentwicklung von Electronic Arts ermöglichen.

Du entscheidest dich für das Select-Widget, damit zwischen den folgenden Metriken gewechselt werden kann: close, market_cap und volume.

Der stocks-Datensatz wurde auf EA gefiltert. Drei Figuren (close, market_cap und volume) sowie zugehörige Glyphen-Sets (close_line, market_cap_line, volume) wurden für jede Metrik erstellt und für dich vorab geladen.

Diese Übung ist Teil des Kurses

<Kurs>Interaktive Datenvisualisierung mit Bokeh</Kurs>
Kurs ansehen

Übungsanweisungen

  • Erstelle menu, indem du Select() aufrufst, eine Liste an das Argument options übergibst, die "Close", "Market Cap" und "Volume" (in dieser Reihenfolge) enthält, value auf "Close" setzt und den Titel "Metric" vergibst.
  • Rufe eine passende Methode von menu auf, um den "value" des Widgets mit callback zu verknüpfen.
  • Rufe layout innerhalb von show auf und zeige das Widget oberhalb der Figuren close, market_cap und volume an.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Create menu
menu = ____
callback = CustomJS(args=dict(plot_one=close, plot_two=market_cap, plot_three=volume, line_1=close_line, line_2=market_cap_line, line_3=volume_line), code="""
plot_one.visible = true
plot_two.visible = true
plot_three.visible = true
line_1.visible = true
line_2.visible = true
line_3.visible = true
if (this.value == "Close") {plot_two.visible = false
                            plot_three.visible = false
                            line_2.visible = false
                            line_3.visible = false}
    else {plot_one.visible = false
          line_1.visible = false} 
if (this.value == "Market Cap") {plot_one.visible = false
                                 plot_three.visible = false
                                 line_1.visible = false
                                 line_3.visible = false} 
    else {plot_two.visible = false
          line_2.visible = false}
if (this.value == "Volume") {plot_one.visible = false
                             plot_two.visible = false
                             line_1.visible = false
                             line_2.visible = false}
    else {plot_three.visible = false
          line_3.visible = false}
""")

# Set up the interaction
____

# Display the layout
output_file(filename="stock_metrics.html")
____
Code bearbeiten und ausführen