Eine HTML-Liste zu Dash hinzufügen
Während du an deinem Schreibtisch arbeitest, hat jemand aus dem Marketing dein letztes kleines Dashboard gesehen und dich gebeten, eines für das Team zu erstellen. Sie möchten ein Balkendiagramm der Top-Kategorien nach Gesamtumsatz, mit einer Liste darunter, die die wichtigsten Kategorien für einen schnellen Überblick aufführt.
Außerdem haben sie ein paar stilistische Hinweise, die aber alle in deinem Wissensbereich liegen, dank deiner jüngsten Arbeit mit HTML und Dash.
Deine Aufgabe ist es, das von dir erstellte Dashboard zu erweitern und eine Liste der Top-Kategorien und ihres Verkaufsvolumens hinzuzufügen.
Diese Übung ist Teil des Kurses
<Kurs>Dashboards mit Dash und Plotly erstellen</Kurs>Übungsanweisungen
- Erstelle unterhalb von Zeile
20mit Dash eine geordnete Liste. - Füge unterhalb von Zeile
22zwei Listenelemente zur geordneten Liste hinzu, die die Variablennum1_catundnum2_catmit ihren Verkaufsvolumina enthalten. - Füge unterhalb von Zeile
26einen Zeilenumbruch ein, damit der Copyright-Hinweis alleine steht.
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
ecom_sales = pd.read_csv('/usr/local/share/datasets/ecom_sales.csv')
logo_link = 'https://assets.datacamp.com/production/repositories/5893/datasets/2bac9433b0e904735feefa26ca913fba187c0d55/e_com_logo.png'
ecom_category = ecom_sales.groupby(['Major Category','Minor Category']).size().reset_index(name='Total Orders').sort_values(by='Total Orders', ascending=False).reset_index(drop=True)
num1_cat, num1_salesvol = ecom_category.loc[0].tolist()[1:3]
num2_cat, num2_salesvol = ecom_category.loc[1].tolist()[1:3]
ecom_bar = px.bar(ecom_category, x='Total Orders', y='Minor Category', color='Major Category')
ecom_bar.update_layout({'yaxis':{'dtick':1, 'categoryorder':'total ascending'}})
app = Dash()
app.layout = [
html.Img(src=logo_link),
html.H1('Top Sales Categories'),
dcc.Graph(figure=ecom_bar),
html.Span(children=[
'The top 2 sales categories were:',
# Set up an ordered list
html.____(children=[
# Add two list elements with the top category variables
html.____(children=[____, ' with ', num1_salesvol, ' sales volume']),
html.____(children=[____, ' with ', num2_salesvol, ' sales volume'])
], style={'width':'350px', 'margin':'auto'}),
# Add a line break before the copyright notice
html.____(),
html.I('Copyright E-Com INC')])
]
if __name__ == '__main__':
app.run(debug=True)