Een conceptverkoopdashboard
Gezien je sterke werk tot nu toe met het e-commercebedrijf, hebben ze je gevraagd te helpen hun bestaande dashboards volledig te vervangen. Die vereisen propriëtaire software en kosten de organisatie elke maand een berg geld.
Dit wordt niet het eindproduct; ze willen een ruwe schets van wat mogelijk is met Dash. Ze willen een lijndiagram van hun totale verkoop per maand en een staafdiagram van hun totale verkoop per land. Het is ook handig om een samenvattende statistiek op hoog niveau toe te voegen, zoals welke maand het grootste ordervolume had.
Je taak is om snel een dashboard te maken met Plotly-plots die op elkaar gestapeld zijn.
Deze oefening maakt deel uit van de cursus
Dashboards bouwen met Dash en Plotly
Oefeninstructies
- Zet een Dash-layout op in regel
14. - Voeg de variabele
line_figtoe in regel17. - Voeg de variabele
bar_figtoe in regel19. - Voeg een
.H3()-titel toe die demax_countrytoont (het land met de hoogste totale verkoop).
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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)