Créer des tableaux de bord avec Dash et Plotly
Alex Scriven
Data Scientist
$$
sales_country = ecom_sales\ .groupby('Country')['OrderValue']\ .sum()\ .reset_index(name='Total Sales ($)')\ .sort_values('Total Sales ($)', ascending=False)sales_ma_cat = ecom_sales\ .groupby('Major Category')['OrderValue']\ .sum()\ .reset_index(name='Total Sales ($)')\ .sort_values('Total Sales ($)', ascending=False)
Remanié :
def sales_by(col): df = ecom_sales\ .groupby(col)['OrderValue']\ .sum()\ .reset_index(name='Total Sales ($)')\ .sort_values('Total Sales ($)', ascending=False) return df# Appeler plusieurs fois sales_country = sales_by('Country') sales_ma_cat = sales_by('Major Category') sales_mi_cat = sales_by('Minor Category')
Exemple : logo très stylisé
def create_logo():
logo=html.Img(src=logo_link, style=
{'margin':'30px 0px 0px 0px',
'padding':'50px 50px',
'border':'3px dotted lightblue',
'background-color':'rgb(230,131,247)'
})
return logo
app.layout = [
create_logo(),
html.Div(),
# More components
create_logo(),
dcc.Graph(id='my_graph'),
create_logo()
]
Le logo est inséré 3 fois !
Avant :
app.layout = [
html.Img(src=logo_link),
html.Br(),
html.Br(),
html.H1("Sales breakdowns"),
html.Br(),
html.Br(),
html.Br(),
...
Après :
def make_break(num_breaks): br_list = [html.Br()] * num_breaks return br_listapp.layout = [ html.Img(src=logo_link), *make_break(2), html.H1("Sales breakdowns"), *make_break(3), ...
.update() d'un dictionnaire Python (attention : clés uniques !)d1 = {'Country':'Australia'}
d2 = {'City':'Sydney'}
d1.update(d2)
print(d1)
{'Country':'Australia', 'City':'Sydney'}
Préparer la fonction :
def style_c():
corp_style={
'margin':'0 auto',
'border':'2px solid black',
'display':'inline-block',
}
return corp_style
Appeler dans la mise en page Dash :
app.layout = [ html.Img(src=logo_link, style=style_c()),dcc.DatePickerSingle( style={'width':'200px'}.update(style_c()) )]
Créer des tableaux de bord avec Dash et Plotly