ComenzarEmpieza gratis

Cambiar gráficos de líneas con Select

Para tu tarea final, el fondo de inversión te ha pedido que prepares visualizaciones que permitan analizar el rendimiento bursátil de Electronic Arts.

Has decidido que el widget Select es ideal, para que puedan alternar entre las siguientes métricas: close, market_cap y volume.

El conjunto de datos stocks se ha filtrado para EA. Se han creado tres figuras (close, market_cap y volume) y los conjuntos de glifos (close_line, market_cap_line, volume) para cada métrica y se han precargado para ti.

Este ejercicio forma parte del curso

Visualización de datos interactiva con Bokeh

Ver curso

Instrucciones del ejercicio

  • Crea menu llamando a Select(), pasando una lista al argumento options que contenga "Close", "Market Cap" y "Volume" (en ese orden), estableciendo value en "Close" y con el título "Metric".
  • Llama a un método apropiado de menu para vincular el "value" del widget con callback.
  • Llama a layout dentro de show, mostrando el widget encima de las figuras close, market_cap y volume.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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")
____
Editar y ejecutar código