A draft sales dashboard
Given your great work so far with the e-commerce company, they have asked you to help them completely replace their existing dashboards, which require proprietary software and are costing the organization a mountain of money each month.
This won't be the final product; they want a rough draft of what is possible using Dash. They would like a line chart of their total sales each month and a bar chart of their total sales in each country. It would be good to throw in a high-level summary statistic, such as which month had the largest order volume.
Your task is to create a quick dashboard using Plotly plots stacked on each other.
Diese Übung ist Teil des Kurses
Building Dashboards with Dash and Plotly
Anleitung zur Übung
- Set up a Dash layout on line
14
. - Add the
line_fig
variable on line17
. - Add the
bar_fig
variable on line19
. - Add an
.H3()
title showing themax_country
(the country with the highest total sales).
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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)