Řetězené callbacky

Tvorba dashboardů s Dash a Plotly

Alex Scriven

Data Scientist

Proč řetězit callbacky?

 

  • Dosavadní využití callbacků:
    • Generování grafů
    • Změna HTML / textu

$$

  • Co když callback spustí jiný callback?
    • Příklad použití: podmíněný dropdown
Tvorba dashboardů s Dash a Plotly

Typický příklad

 

Animace dvou dropdownů vedle sebe. První má zástupný text Make, druhý Model. Poté, co myš vybere Audi z prvního dropdownu a přejde na druhý, jsou dostupné možnosti druhého dropdownu filtrovány pouze na modely vozů Audi.

Tvorba dashboardů s Dash a Plotly

Vstupy a výstupy

  • Klíč: sledovat cesty callbacků (vstupy a výstupy)
  • Užitečný nástroj: diagram vstupů a výstupů

$$

  • Průběh:
    • Uživatel změní value prvního dropdownu (INPUT)
    • Callback vyfiltruje a vrátí options druhého dropdownu (OUTPUT)
    • Druhý callback může být spuštěn (INPUT) vlastností value druhého dropdownu.

Vývojový diagram s obdélníky a šipkami propojujícími pole svisle. Mezi poli jsou malé textové boxy. První pole obsahuje slovo „user" a šipku na pole „Major Category dropdown" s textovým boxem „value". Další šipka vede na pole „Minor category dropdown" s textovým boxem „Options". Toto pole je propojeno šipkou s posledním polem „(Optional) More callbacks" s textovým boxem „Options".

Tvorba dashboardů s Dash a Plotly

Řetězené callbacky v Dashi

 

@callback(
  Output('minor_cat_dd', 'options'),
  Input('major_cat_dd', 'value'))

def update_major_cat(major_cat_dd): # Filter options (list of dicts) return minor_options

 

@callback(
  Output('minor_cat_dd', 'value'),
  Input('minor_cat_dd', 'options'))

def update_minor_cat(minor_cat_options): # Pick a default value return chosen_value
Tvorba dashboardů s Dash a Plotly

Více výstupů

  • Aktualizace více prvků

$$

@callback(
  Output('my_title', 'children'),
  Output('minor_cat_dd', 'value'),
  Input('minor_cat_dd', 'options')
)
def some_function(input):
  # function body
  return title_value, dropdown_value
Tvorba dashboardů s Dash a Plotly

Diagram více výstupů

Vývojový diagram rozšiřující předchozí. Místo posledního pole s textem „(Optional) More callbacks" vedou dvě šipky dolů do dvou polí vedle sebe s texty „Minor Category Dropdown" a „HTML Title", z nichž obě vedou šipky do volitelného pole níže.

Tvorba dashboardů s Dash a Plotly

Pojďme procvičovat!

Tvorba dashboardů s Dash a Plotly

Preparing Video For Download...