散布図の基本形

入門

6.5.1

散布図の基本形

最終更新 2020-01-29 読了時間 1 分
まとめ
  • 2変数の関係を点の位置で確認する基本的な散布図。
  • sns.scatterplot でデータの相関や外れ値を可視化する。
  • 変数間の関連性をざっくり把握したい初期段階で使う。

身長と体重の関係をランダムデータで描いた基本的な散布図です。seaborn.scatterplot を使うとスタイルを統一できます。

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

rng = np.random.default_rng(42)
height = rng.normal(167, 8, size=120)
weight = 0.6 * height + rng.normal(0, 5, size=120) + 30

fig, ax = plt.subplots(figsize=(5.5, 4))
sns.scatterplot(x=height, y=weight, ax=ax, color="#2563eb", edgecolor="white")

ax.set_xlabel("身長(cm)")
ax.set_ylabel("体重(kg)")
ax.set_title("身長と体重の関係")
ax.grid(alpha=0.2)

fig.tight_layout()

plt.show()

seaborn.scatterplot を使うとスタイルを統一できますの図

読み方のポイント #

  • 相関が強いほど点が細い帯状にまとまる。相関が弱いと円形に散らばる。
  • 点が重なりすぎる場合はアルファ値(alpha)を下げる、もしくは Hexbin など別手法を検討する。
  • 外れ値を見つけたら、別途明示して原因分析につなげる。

いつ使うか #

  • 適している場面: 2つの連続変数の関係を素早く概観したいとき。外れ値や非線形な傾向の発見に適しています。
  • 不向きな場面: データ点が多すぎる(1万点超)場合は重なりが激しくなり、hexbin や kde-2d の方が適切です。
  • 代替手段: バブルチャートを使えば第3変数もサイズで同時に表現できます。

よくある失敗パターン #

  • 過密プロット: 数千点以上を同じ透過率で描画するとすべて塗りつぶし状態になります。alpha を 0.1〜0.3 に下げるか hexbin を検討してください。
  • 軸スケールの不一致: X 軸と Y 軸のスケールが大きく異なると相関の視覚的印象が歪みます。必要に応じて正規化を検討しましょう。