Une ébauche de tableau de bord des ventes
Étant donné l’excellent travail que vous avez réalisé avec l’entreprise d’e-commerce, elle vous a demandé de l’aider à remplacer complètement ses tableaux de bord actuels, qui nécessitent un logiciel propriétaire et coûtent à l’organisation une fortune chaque mois.
Il ne s’agira pas du produit final ; ils veulent une première ébauche de ce qu’il est possible de faire avec Dash. Ils souhaitent un graphique en courbes de leurs ventes mensuelles totales et un graphique en barres de leurs ventes totales par pays. Il serait utile d’ajouter une statistique de synthèse globale, par exemple le mois ayant enregistré le plus grand volume de commandes.
Votre tâche est de créer rapidement un tableau de bord en empilant des graphiques Plotly les uns au-dessus des autres.
Cet exercice fait partie du cours
<cours>Créer des tableaux de bord avec Dash et Plotly</cours>Instructions de l’exercice
- Configurez une mise en page Dash à la ligne
14. - Ajoutez la variable
line_figà la ligne17. - Ajoutez la variable
bar_figà la ligne19. - Ajoutez un titre
.H3()affichant lemax_country(le pays avec le total des ventes le plus élevé).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
from dash import Dash, dcc, html
import pandas as pd
import plotly.express as px
ecom_sales = pd.read_csv('/usr/local/share/datasets/ecom_sales.csv')
ecom_line = ecom_sales.groupby('Year-Month')['OrderValue'].agg('sum').reset_index(name='Total Sales ($)')
line_fig = px.line(data_frame=ecom_line, x='Year-Month', y='Total Sales ($)', title='Total Sales by Month')
ecom_bar = ecom_sales.groupby('Country')['OrderValue'].agg('sum').reset_index(name='Total Sales ($)')
max_country = ecom_bar.sort_values(by='Total Sales ($)', ascending=False).loc[0]['Country']
bar_fig = px.bar(data_frame=ecom_bar, x='Total Sales ($)', y='Country', orientation='h', title='Total Sales by Country')
app = Dash()
# Set up the layout
app.____ = [
html.H1('Sales Figures'),
# Add the line figure
dcc.___(id='my-line-fig', figure=____),
# Add the bar figure
dcc.___(id='my-bar-fig', figure=____),
# Add the H3 title
html.____(f'The largest country by sales was {____}!')
]
if __name__ == '__main__':
app.run(debug=True)