Ein verfeinertes Sales-Dashboard
Das E‑Commerce-Unternehmen aus Kapitel 1 hat sich gemeldet und ein Budget bereitgestellt, damit du deine bisherige Arbeit — ein einfaches Proof‑of‑Concept-Sales-Dashboard — ausbauen kannst.
Jetzt, da du Styling- und Positionierungsfähigkeiten aufgebaut hast, kannst du dieses Dashboard präsentationsreif machen.
Zur Erinnerung: Das Unternehmen möchte ein Liniendiagramm der monatlichen Gesamterlöse, ein Balkendiagramm der Gesamterlöse pro Land und eine übergeordnete Kennzahl zur höchsten Bestellmenge im Zeitraum. Allerdings bevorzugen sie eine Darstellung nebeneinander, und der Corporate-Styleguide verlangt hellblaue Hintergründe. Außerdem wünschen sie zwei Logos, jeweils eins auf jeder Seite des Haupttitels, damit die Marke gut zur Geltung kommt.
Diese Übung ist Teil des Kurses
<Kurs>Dashboards mit Dash und Plotly erstellen</Kurs>Übungsanweisungen
- Füge links neben der H1 das linke Logo mit
25pxMargin unterhalb von Zeile17hinzu. - Füge rechts neben der H1 das rechte Logo mit
25pxMargin unterhalb von Zeile22hinzu. - Setze das Liniendiagramm auf
500pxBreite, nebeneinander mit5pxMargin unterhalb von Zeile25. - Setze das Balkendiagramm auf
350pxBreite, nebeneinander mit5pxMargin unterhalb von Zeile28.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
from dash import Dash, dcc, html
import plotly.express as px
import pandas as pd
logo_link = 'https://assets.datacamp.com/production/repositories/5893/datasets/fdbe0accd2581a0c505dab4b29ebb66cf72a1803/e-comlogo.png'
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='TotalSales')
line_fig = px.line(data_frame=ecom_line, x='Year-Month', y='TotalSales',title='Total Sales by Month')
line_fig.update_layout({'paper_bgcolor':'rgb(224, 255, 252)' })
ecom_bar = ecom_sales.groupby('Country')['OrderValue'].agg('sum').reset_index(name='TotalSales')
bar_fig = px.bar(data_frame=ecom_bar, x='TotalSales', y='Country', orientation='h',title='Total Sales by Country')
bar_fig.update_layout({'yaxis':{'dtick':1, 'categoryorder':'total ascending'}, 'paper_bgcolor':'rgb(224, 255, 252)'})
app = Dash()
app.layout = [
html.Img(src=logo_link,
# Add the left-side logo next to the H1 with 25px margin
style={'display':'____', 'margin':'____'}),
html.H1(children=['Sales Figures'],
style={'display':'inline-block'}),
html.Img(src=logo_link,
# Add the right-side logo next to the H1 with 25px margin
style={'display':'____', 'margin':'____'}),
dcc.Graph(figure=line_fig,
# Set line graph to 500px wide, side-by-side with 5px margin
style={'width':'____', 'display':'____', 'margin':'____'}),
dcc.Graph(figure=bar_fig,
# Set bar graph to 350px wide, side-by-side with 5px margin
style={'width':'____', 'display':'____', 'margin':'____'}),
html.H3(f'The largest order quantity was {ecom_sales.Quantity.max()}')
]
if __name__ == '__main__':
app.run(debug=True)