Zmiana wykresów liniowych za pomocą Select
W ramach ostatniego zadania fundusz hedgingowy poprosił cię o przygotowanie wizualizacji umożliwiających analizę wyników giełdowych Electronic Arts.
Postanawiasz skorzystać z widżetu Select – będzie idealny, ponieważ pozwoli przełączać się między następującymi metrykami: close, market_cap i volume.
Zbiór danych stocks został przefiltrowany dla EA. Trzy wykresy (close, market_cap i volume) oraz zestawy glifów (close_line, market_cap_line, volume) zostały już dla ciebie utworzone i wczytane.
To ćwiczenie jest częścią kursu
Interaktywna wizualizacja danych z Bokeh
Instrukcje do ćwiczenia
- Utwórz
menu, wywołującSelect()i przekazując do argumentuoptionslistę zawierającą"Close","Market Cap"i"Volume"(w tej kolejności), ustawiającvaluena"Close"oraz podając tytuł"Metric". - Wywołaj odpowiednią metodę na obiekcie
menu, aby powiązać"value"widżetu zcallback. - Wywołaj
layoutwewnątrzshow, wyświetlając widżet powyżej wykresówclose,market_capivolume.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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")
____