แดชบอร์ดยอดขายเบื้องต้น
จากผลงานที่ผ่านมา บริษัท e-commerce ได้ขอให้ช่วยแทนที่แดชบอร์ดเดิมของพวกเขาอย่างสมบูรณ์ ซึ่งแดชบอร์ดเดิมนั้นต้องใช้ซอฟต์แวร์เฉพาะทางและมีค่าใช้จ่ายสูงมากในแต่ละเดือน
นี่ยังไม่ใช่ผลิตภัณฑ์สุดท้าย พวกเขาต้องการดูแบบร่างคร่าว ๆ ของสิ่งที่เป็นไปได้ด้วย Dash โดยต้องการกราฟเส้นแสดงยอดขายรวมในแต่ละเดือน และกราฟแท่งแสดงยอดขายรวมในแต่ละประเทศ รวมถึงสถิติสรุประดับสูง เช่น เดือนใดมีปริมาณคำสั่งซื้อสูงสุด
ภารกิจนี้คือการสร้างแดชบอร์ดอย่างรวดเร็วโดยใช้กราฟ Plotly วางซ้อนกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างแดชบอร์ดด้วย Dash และ Plotly
คำแนะนำการฝึกหัด
- กำหนด Dash layout ในบรรทัดที่
14 - เพิ่มตัวแปร
line_figในบรรทัดที่17 - เพิ่มตัวแปร
bar_figในบรรทัดที่19 - เพิ่มชื่อเรื่องด้วย
.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)