つくる:ダッシュボード4枚
このレッスンでできるようになること。目的に応じて図の種類を選び、比較・推移・分布・構成の4枚をまとめて作れるようになります。新しい文法は出てきません。
ダッシュボードとは、状況を一目で把握するための図の組です。並べる図はやみくもに増やすのではなく、答えたい問いから決めます。マイショップ・チェーンの月次報告なら、次の4つの問いが基本になります。
1つめ、どの店が大きいか。これは比較なので棒グラフです。2つめ、全体は伸びているか。これは推移なので折れ線です。3つめ、どの価格帯が売れているか。これは分布なのでヒストグラムです。4つめ、売上は何で構成されているか。これはカテゴリ別の内訳なので、これも棒グラフで表せます。
図を複数枚まとめて作るときは、subplots に行数と列数を渡します。
Python
fig, axes = plt.subplots(2, 2)
axes[0][0].bar(["読書", "計算"], [25, 40])axes は2行2列の入れ子になった配列で、axes[0][0] が左上です。それぞれの ax に対して、これまでと同じように描いていくだけです。図が4枚になると横軸のラベルが重なりやすいので、fig.tight_layout() を最後に呼んで間隔を整えます。
組み立てるときの約束を3つ確認します。1つめは、それぞれの図に必ずタイトルを付けることです。4枚並ぶと、どれが何の図か分からなくなります。2つめは、図ごとに集計をやり直すことです。1つの集計を使い回そうとすると、軸が違うのに同じデータを描いてしまう事故が起きます。3つめは、描いたあとに読み返して確かめることです。4枚もあると目視の確認は雑になります。
最後に、ダッシュボードは作って終わりではありません。4枚を見比べて何が言えるかを一言でまとめられるかどうかが、次の章の入口になります。「大宮店が最大だが、伸びているのは渋谷店で、価格帯は二極化している」といった1文が出てくれば、図の選び方は正しかったということです。
この演習では、集計と読み返しは準備済みです。図の種類を選ぶことと、内容が分かるタイトルを付けることに集中しましょう。by_store、by_month、by_category はラベルを index、合計を values に持つ Series です。棒グラフと折れ線にその2つを渡します。
たとえば学習時間の比較なら、棒を描いてタイトルを付けます。
Python
study = pd.Series([25, 40], index=["読書", "計算"])
ax.bar(study.index, study.values)
ax.set_title("学習時間の比較")_read_dashboard(axes) が描画後のタイトル、棒と線の値、ヒストグラムの区間ごとの件数を取り出すので、返却用の整形は書き直しません。
要件
- 読み込み、日付変換、集計、2行2列の軸、配置調整、読み返しは準備済みコードを使う
- 左上に by_store の棒、右上に by_month の折れ線、左下に金額のヒストグラム、右下に by_category の棒を描く
- タイトルは順に「店舗別売上」「月次推移」「金額の分布」「カテゴリ別売上」とする
- ヒストグラムの bins は3にする
- 各集計の index を横軸、values を縦軸にする
- hist_counts は補助関数が左下の棒から読み返す。bins=3 の自動区間ごとの件数を低い金額から並べる