销售仪表板草稿
鉴于您在这家电商公司的出色工作,他们希望您帮助他们彻底替换现有的仪表板。当前的仪表板依赖专有软件,每月让组织付出高昂成本。
这不是最终成品;他们想先看看使用 Dash 能实现的粗略样例。他们希望看到每月总销售额的折线图,以及各国家总销售额的柱状图。最好再加一个高层概览指标,比如哪个月份的订单量最大。
您的任务是使用 Plotly 图形上下堆叠,快速搭建一个简易仪表板。
本练习是课程的一部分
使用 Dash 和 Plotly 构建仪表板
练习说明
- 在第
14行设置 Dash 布局。 - 在第
17行添加变量line_fig。 - 在第
19行添加变量bar_fig。 - 添加一个
.H3()标题,显示max_country(总销售额最高的国家)。
交互式实操练习
通过完成这段示例代码来试试这个练习。
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)