IniziaInizia gratis

Modificare i grafici a linee con Select

Per il tuo ultimo compito, l'hedge fund ti ha chiesto di preparare visualizzazioni che permettano di analizzare la performance azionaria di Electronic Arts.

Decidi che il widget Select è l'ideale, così possono passare tra le seguenti metriche: close, market_cap e volume.

Il dataset stocks è stato filtrato per EA. Tre figure (close, market_cap e volume) e i relativi insiemi di glifi (close_line, market_cap_line, volume) sono stati creati per ciascuna metrica e precaricati per te.

Questo esercizio fa parte del corso

Visualizzazione interattiva dei dati con Bokeh

Visualizza il corso

Istruzioni dell'esercizio

  • Crea menu richiamando Select(), passando una lista all'argomento options contenente "Close", "Market Cap" e "Volume" (in quest'ordine), impostando value su "Close" e assegnando il titolo "Metric".
  • Richiama un metodo appropriato di menu per collegare il "value" del widget a callback.
  • Richiama layout all'interno di show, mostrando il widget sopra le figure close, market_cap e volume.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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")
____
Modifica ed esegui il codice