Ein erster Entwurf für ein Sales-Dashboard
Dank deiner starken Arbeit mit dem E‑Commerce-Unternehmen hat man dich gebeten, dabei zu helfen, die bestehenden Dashboards komplett zu ersetzen. Diese basieren auf proprietärer Software und kosten die Organisation jeden Monat ein Vermögen.
Das hier wird nicht das finale Produkt; sie möchten einen groben Entwurf dessen, was mit Dash möglich ist. Gewünscht sind ein Liniendiagramm der monatlichen Gesamteinnahmen und ein Balkendiagramm der Gesamteinnahmen pro Land. Außerdem wäre eine Kennzahl auf hoher Ebene hilfreich, etwa welcher Monat das höchste Bestellvolumen hatte.
Deine Aufgabe ist es, schnell ein Dashboard zu bauen, in dem Plotly‑Plots übereinander gestapelt sind.
Diese Übung ist Teil des Kurses
<Kurs>Dashboards mit Dash und Plotly erstellen</Kurs>Übungsanweisungen
- Richte in Zeile
14ein Dash-Layout ein. - Füge in Zeile
17die Variableline_fighinzu. - Füge in Zeile
19die Variablebar_fighinzu. - Füge einen
.H3()-Titel hinzu, der dasmax_country(das Land mit den höchsten Gesamteinnahmen) anzeigt.
Interaktive praktische Ü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)