НачатьНачать бесплатно

Изменение линейных графиков с помощью Select

В рамках финального задания хедж-фонд попросил вас подготовить визуализации для анализа динамики акций Electronic Arts.

Вы решаете, что виджет Select подойдёт лучше всего: с его помощью можно переключаться между следующими метриками: close, market_cap и volume.

Набор данных stocks уже отфильтрован по EA. Три фигуры (close, market_cap и volume) и наборы глифов (close_line, market_cap_line, volume) для каждой метрики созданы и предварительно загружены для вас.

Это упражнение является частью курса

Интерактивная визуализация данных с Bokeh

Посмотреть курс

Инструкции к упражнению

  • Создайте menu, вызвав Select(): передайте в аргумент options список, содержащий "Close", "Market Cap" и "Volume" (именно в таком порядке), установите value равным "Close" и задайте заголовок "Metric".
  • Вызовите соответствующий метод объекта menu, чтобы связать "value" виджета с callback.
  • Вызовите layout внутри show, разместив виджет над фигурами close, market_cap и volume.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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")
____
Редактировать и запускать код