Una bozza di dashboard delle vendite
Visto l'ottimo lavoro svolto finora con l'azienda di e-commerce, ti hanno chiesto di aiutarli a sostituire completamente i loro dashboard esistenti, che richiedono software proprietario e costano all'organizzazione un'enormità di denaro ogni mese.
Questo non sarà il prodotto finale; vogliono una bozza di ciò che è possibile fare con Dash. Vorrebbero un grafico a linee delle vendite totali per mese e un grafico a barre delle vendite totali per paese. Sarebbe utile aggiungere anche una statistica di sintesi a livello alto, ad esempio quale mese ha avuto il volume di ordini più alto.
Il tuo compito è creare rapidamente una dashboard usando grafici Plotly impilati uno sopra l'altro.
Questo esercizio fa parte del corso
Creare dashboard con Dash e Plotly
Istruzioni dell'esercizio
- Imposta un layout Dash alla riga
14. - Aggiungi la variabile
line_figalla riga17. - Aggiungi la variabile
bar_figalla riga19. - Aggiungi un titolo
.H3()che mostrimax_country(il paese con il totale vendite più alto).
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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)