Un dashboard de vânzări în variantă draft
Datorită muncii tale excelente de până acum, compania de e-commerce ți-a cerut să îi ajuți să înlocuiască complet dashboardurile existente, care necesită software proprietar și costă organizația o sumă considerabilă în fiecare lună.
Acesta nu va fi produsul final; ei doresc un draft care să arate ce este posibil cu Dash. Ar dori un grafic de tip linie cu vânzările totale pe lună și un grafic de tip bară cu vânzările totale pe fiecare țară. Ar fi util să incluzi și o statistică sumară de nivel înalt, cum ar fi luna cu cel mai mare volum de comenzi.
Sarcina ta este să creezi rapid un dashboard folosind grafice Plotly așezate unul sub altul.
Acest exercițiu face parte din cursul
Crearea dashboardurilor cu Dash și Plotly
Instrucțiuni pentru exercițiu
- Configurează structura Dash pe linia
14. - Adaugă variabila
line_figpe linia17. - Adaugă variabila
bar_figpe linia19. - Adaugă un titlu
.H3()care să afișezemax_country(țara cu cele mai mari vânzări totale).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)