Callback-uri înlănțuite

Crearea dashboardurilor cu Dash și Plotly

Alex Scriven

Data Scientist

De ce să înlănțuim callback-uri?

 

  • Până acum, callback-urile pot:
    • Regenera grafice
    • Modifica HTML / text

$$

  • Ce se întâmplă dacă un callback declanșează altul?
    • Caz de utilizare: dropdown condiționat
Crearea dashboardurilor cu Dash și Plotly

Un exemplu frecvent

 

GIF cu două dropdown-uri alăturate. Primul are textul-placeholder Make, al doilea Model. Pe măsură ce mouse-ul selectează Audi din primul dropdown și trece la al doilea, se observă că opțiunile disponibile sunt filtrate doar pentru modelele Audi.

Crearea dashboardurilor cu Dash și Plotly

Intrări și ieșiri

  • Cheie: urmăriți traseele callback-urilor (intrări și ieșiri)
  • Instrument util: diagrama intrări-ieșiri

$$

  • Fluxul:
    • Utilizatorul modifică value al primului dropdown (INPUT)
    • Un callback filtrează și returnează options al celui de-al doilea dropdown (OUTPUT)
    • Un al doilea callback poate fi declanșat (INPUT) de proprietatea value a celui de-al doilea dropdown.

Diagramă flux cu dreptunghiuri și săgeți verticale. Prima casetă conține cuvântul „User", cu o săgeată spre caseta „Major Category Dropdown" (textul intermediar: „value"). O săgeată leagă aceasta de caseta „Minor Category Dropdown" (textul intermediar: „Options"). Aceasta se conectează prin săgeată la ultima casetă „(Optional) More callbacks" (textul intermediar: „Options").

Crearea dashboardurilor cu Dash și Plotly

Callback-uri înlănțuite în Dash

 

@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
Crearea dashboardurilor cu Dash și Plotly

Ieșiri multiple

  • Actualizarea mai multor elemente

$$

@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
Crearea dashboardurilor cu Dash și Plotly

Diagramă ieșiri multiple

Diagramă flux extinsă față de cea anterioară. În locul casetei finale cu textul „(Optional) More callbacks", există două săgeți către două casete alăturate cu textele „Minor Category Dropdown" și „HTML Title", ambele cu săgeți spre caseta opțională de la baza diagramei anterioare.

Crearea dashboardurilor cu Dash și Plotly

Să exersăm!

Crearea dashboardurilor cu Dash și Plotly

Preparing Video For Download...