積み上げエリアチャート

入門

6.4.2

積み上げエリアチャート

最終更新 2020-02-12 読了時間 1 分
まとめ
  • 積み上げ面グラフでデバイス別トラフィックの構成比推移を可視化する。
  • ax.stackplot で複数系列の面積を重ねて描画する。
  • 時系列の合計値と内訳を同時に把握したいときに使う。

時間帯ごとのトラフィック量を、PC・スマホ・タブレットの 3 カテゴリで積み上げ面グラフにしました。面積がそのままアクセス量に対応するため、構成比の変化を直感的に把握できます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import numpy as np
import matplotlib.pyplot as plt

hours = np.array([0, 4, 8, 12, 16, 20, 24])
pc = np.array([120, 150, 180, 210, 240, 220, 180])
mobile = np.array([200, 220, 240, 260, 280, 300, 260])
tablet = np.array([80, 90, 120, 150, 180, 170, 140])

fig, ax = plt.subplots(figsize=(6, 4))
ax.stackplot(
    hours,
    tablet,
    mobile,
    pc,
    labels=["タブレット", "スマホ", "PC"],
    colors=["#bfdbfe", "#93c5fd", "#3b82f6"],
    alpha=0.85,
)
ax.set_xlim(0, 24)
ax.set_xticks(hours)
ax.set_ylabel("PV 数")
ax.set_xlabel("時間帯")
ax.set_title("時間帯別 トラフィック量")
ax.legend(loc="upper left", frameon=False)
ax.grid(axis="y", alpha=0.3)

fig.tight_layout()

plt.show()

面積がそのままアクセス量に対応するため、構成比の変化を直感的に把握できますの図

読み方のポイント #

  • 面積が大きい時間帯がアクセスピーク。構成比の変化も同時に確認できる。
  • 100% 表示にしたい場合は各系列を合計で割ると割合の推移が明確になる。
  • 強調したいカテゴリがある場合は色の濃さや順序を工夫する。

いつ使うか #

  • 適している場面: 構成要素の時間推移と合計を面積で同時に伝えたいとき。部分と全体の変化が直感的に分かります。
  • 不向きな場面: 上に積み上げた系列は実際の値が読みにくいため、各系列の正確な値比較には不向きです。
  • 代替手段: 各系列の正確な変化を比較したいなら複数ラインプロットの方が適切です。

よくある失敗パターン #

  • 積み上げ順の不適切な選択: 変動の激しい系列を下に配置すると上の系列すべてが揺れて見えます。安定した系列を下に置きましょう。
  • 負の値の存在: 積み上げエリアチャートに負の値が含まれると面積の重なりが発生し意味が破綻します。負の値がないことを事前に確認してください。