始める無料で始める

Dash に HTML リストを追加する

あなたがデスクで作業していると、マーケティング部の人があなたの直近の小さなダッシュボードを見かけ、同様のものを作ってほしいと依頼されました。総売上額の上位カテゴリを棒グラフで表示し、その下に上位のいくつかのカテゴリをひと目で確認できるようリストで示したいとのことです。

いくつかスタイル上の要望もありますが、最近の HTML と Dash の取り組みからして、いずれも対応可能な範囲に見えます。

あなたのタスクは、作成済みのダッシュボードを拡張し、上位カテゴリとその売上数量のリストを追加することです。

この演習はコースの一部です

Dash と Plotly で作るダッシュボード

コースを見る

演習の手順

  • 20 の下に、Dash を使って順序付きリストを作成します。
  • 22 の下にある順序付きリストに、num1_catnum2_cat の各変数とその売上数量を含むリスト要素を 2 つ追加します。
  • 26 の下に改行を追加し、著作権表記が独立した行に表示されるようにします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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)
コードを編集して実行