Łańcuchowe wywołania zwrotne

Tworzenie dashboardów z Dash i Plotly

Alex Scriven

Data Scientist

Dlaczego łańcuchować wywołania zwrotne?

 

  • Dotychczas wywołania zwrotne:
    • Regenerują wykresy
    • Zmieniają HTML / tekst

$$

  • Co z wywołaniem zwrotnym wyzwalającym inne?
    • Przykład: warunkowe menu rozwijane
Tworzenie dashboardów z Dash i Plotly

Typowy przykład

 

Animacja GIF przedstawiająca dwa menu rozwijane obok siebie. Pierwsze ma tekst zastępczy „Make", drugie „Model". Po wybraniu „Audi" z pierwszego menu, opcje w drugim są filtrowane do modeli marki Audi.

Tworzenie dashboardów z Dash i Plotly

Wejścia i wyjścia

  • Kluczowe: śledzenie ścieżek wywołań (wejścia i wyjścia)
  • Przydatne narzędzie: diagram wejść i wyjść

$$

  • Przepływ:
    • Użytkownik zmienia value pierwszego menu (WEJŚCIE)
    • Wywołanie zwrotne filtruje i zwraca options drugiego menu (WYJŚCIE)
    • Drugie wywołanie zwrotne może zostać wyzwolone (WEJŚCIE) przez właściwość value drugiego menu.

Schemat blokowy z prostokątami i strzałkami łączącymi pola pionowo. Między polami znajdują się małe pola tekstowe. Pierwsze pole zawiera słowo „user", strzałka prowadzi do pola „Major Category dropdown" z polem tekstowym „value". Poniżej strzałka do pola „Minor category dropdown" z polem tekstowym „Options". To pole łączy się ze strzałką z ostatnim polem „(Optional) More callbacks" z polem tekstowym „Options".

Tworzenie dashboardów z Dash i Plotly

Łańcuchowe wywołania zwrotne w 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
Tworzenie dashboardów z Dash i Plotly

Wiele wyjść

  • Aktualizacja wielu elementów

$$

@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
Tworzenie dashboardów z Dash i Plotly

Diagram wielu wyjść

Schemat blokowy rozszerzający poprzedni. Zamiast ostatniego pola z tekstem „(Optional) More callbacks" dwie strzałki wskazują na dwa pola obok siebie: „Minor Category Dropdown" i „HTML Title", z których każde ma strzałkę do opcjonalnego pola na dole.

Tworzenie dashboardów z Dash i Plotly

Czas na ćwiczenia!

Tworzenie dashboardów z Dash i Plotly

Preparing Video For Download...