ダイバージングバーで差分を表す

中級

6.3.5

ダイバージングバーで差分を表す

最終更新 2020-03-25 読了時間 1 分
まとめ
  • 正負の値を中央線の左右に振り分けて増減を視覚化する。
  • ax.barhnp.whereによる条件付き色分けで正負を区別する。
  • 前年比やスコア差などプラス・マイナスの傾向を伝えたいときに最適。

前年との増減を横向きの棒で表現すると、プラス・マイナスの傾向がすぐに読み取れます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import numpy as np
import matplotlib.pyplot as plt

departments = ["営業", "開発", "サポート", "マーケ", "管理"]
change = np.array([12, -5, 8, -3, 4])  # 前年比 (ポイント)
colors = np.where(change >= 0, "#10b981", "#f87171")

fig, ax = plt.subplots(figsize=(6, 4))
bars = ax.barh(departments, change, color=colors)

ax.axvline(0, color="#9ca3af", linewidth=1)
ax.set_xlabel("前年差(ポイント)")
ax.set_title("部門別 NPS の前年差")
ax.bar_label(bars, fmt=lambda v: f"{v:+.0f}", padding=4)
ax.grid(axis="x", alpha=0.2)

fig.tight_layout()

plt.show()

前年との増減を横向きの棒で表現すると、プラス・マイナスの傾向がすぐに読み取れますの図

読み方のポイント #

  • 中央線を 0 にすることで増減の方向が明確になる。
  • 色をプラスとマイナスで変えると、直感的に把握しやすい。
  • 変化量が小さい場合はパーセント表示や注釈を加えて強調する。

いつ使うか #

  • 適している場面: 正負や賛否など中央基準からの差分を左右に表示したいとき。アンケート結果の表現に最適です。
  • 不向きな場面: 値がすべて正の場合はダイバージング形式にする意味がなく、通常の棒グラフの方が明快です。
  • 代替手段: ダンベルチャートでビフォー・アフターの変化量を直線で結ぶとさらに差分が際立ちます。

よくある失敗パターン #

  • 中央基準の設定ミス: 中央のゼロ線が適切でないと正負の解釈が混乱します。基準値を明確にラベル付けしてください。
  • 正負の色が紛らわしい: 正と負に似た色を使うと一瞥で方向が判断できません。赤/青など直感的に対比できる色を選びましょう。