Callbacky v Dashi

Tvorba dashboardů s Dash a Plotly

Alex Scriven

Data Scientist

Co jsou callbacky?

 

  • Funkce spuštěná interakcí
    • Uživatel interaguje s prvkem
      • -> Spustí se funkce Pythonu
        • --> Něco se změní

$$

$$

$$

  • Proč? Zvyšuje interaktivitu ✨
Tvorba dashboardů s Dash a Plotly

Callbacky v Dashi

  • Začínáme dekorátorem
    • Používá from dash import Input, Output
  • Output: Kam odeslat návratovou hodnotu funkce
    • component_id: Identifikuje komponentu
    • component_property: Co bude změněno
  • Input: Co spustí callback
    • component_property: Co použít ve spuštěné funkci

 

@callback(

Output(component_id='my_plot', component_property='figure'),
Input(component_id='my_input', component_property='value')
)
def some_function(data): # Subset Data # Recreate Figure return fig
Tvorba dashboardů s Dash a Plotly

Rozevírací seznamy v Dashi

 

dcc.Dropdown(id='title_dd',
             options=['Title 1', 'Title 2'])
  • Seznam hodnot
Tvorba dashboardů s Dash a Plotly

Callback s rozevíracím seznamem

app.layout =[

dcc.Dropdown(id='title_dd', options=['Title 1', 'Title 2']),
dcc.Graph(id='my_graph')])
@callback( Output(component_id='my_graph', component_property='figure'),
Input(component_id='title_dd', component_property='value') )
# @callback()
def update_plot(selection):
    title = "None Selected"
    if selection:
        title = selection

bar_fig = px.bar( data_frame=ecom_sales, title=f'{title}', x='Total Sales ($)', y='Country')
return bar_fig
Tvorba dashboardů s Dash a Plotly

Náš první rozevírací seznam

Gif webového prohlížeče Chrome s pruhovým grafem celkových tržeb (osa x) a zemí (osa y) a rozevíracím seznamem s možnostmi Název 1 a Název 2. Gif ukazuje výběr jednotlivých možností a změnu názvu grafu na vybranou hodnotu

Tvorba dashboardů s Dash a Plotly

Rozevírací seznam jako filtr

  • Typický případ – rozevírací seznam filtruje DataFrame grafu
# @callback()
def update_plot(input_country):
    country = 'All Countries'

sales = ecom_sales.copy(deep=True)
if input_country: country = input_country sales = sales[sales['Country'] == country]
bar_fig = px.bar( data_frame=sales, title=f"Sales in {country}", x='Total Sales ($)', y='Country') return bar_fig
Tvorba dashboardů s Dash a Plotly

Filtr v akci

 

Gif webového prohlížeče Chrome s pruhovým grafem celkových tržeb (osa x) a zemí (osa y) a rozevíracím seznamem s názvy zemí. Gif ukazuje výběr jednotlivých možností, změnu názvu grafu a filtrování grafu na jeden pruh

Tvorba dashboardů s Dash a Plotly

Pojďme si procvičit!

Tvorba dashboardů s Dash a Plotly

Preparing Video For Download...