CommencerCommencez gratuitement

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>
Voir le cours

Instructions de l’exercice

  • Configurez une mise en page Dash à la ligne 14.
  • Ajoutez la variable line_fig à la ligne 17.
  • Ajoutez la variable bar_fig à la ligne 19.
  • Ajoutez un titre .H3() affichant le max_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)
Modifier et exécuter le code