データ分析において「関係性」を見たいときに便利なのが散布図(scatter plot)です。特に、2つの変数の相関を直感的に理解するのに役立ちます。
今回は、matplotlib を使った散布図の描き方と、色・サイズ・透明度などのカスタマイズ方法を解説します。複数系列を視覚的に区別する方法も紹介するので、実務やレポートにも応用できる内容です。
🔰 基本の散布図を描こう
散布図は plt.scatter() を使って描画します。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 3, 7]
plt.scatter(x, y)
plt.title("基本の散布図")
plt.xlabel("Xの値")
plt.ylabel("Yの値")
plt.grid(True)
plt.show()x:横軸のデータy:縦軸のデータ
この基本形を理解しておけば、散布図のカスタマイズはとても簡単です。
🎨 色・サイズ・透明度を変えてみよう
plt.scatter() には以下のようなオプションがあります:
| オプション | 説明 |
|---|---|
color or c | 点の色(”red”, “blue”など) |
s | 点のサイズ(数値で指定) |
alpha | 透明度(0〜1) |
plt.scatter(x, y, color="red", s=100, alpha=0.6)s=100で点を大きめにalpha=0.6で少し透明にして重なりを見やすく
🧠 複数系列の散布図を描く
カテゴリ別に色を分けて描くことで、グループの違いがひと目でわかります。
x1 = [1, 2, 3]
y1 = [2, 3, 2]
x2 = [4, 5, 6]
y2 = [5, 6, 7]
plt.scatter(x1, y1, color="blue", label="Aグループ")
plt.scatter(x2, y2, color="orange", label="Bグループ")
plt.title("グループごとの散布図")
plt.xlabel("特徴量X")
plt.ylabel("特徴量Y")
plt.legend()
plt.grid(True)
plt.show()label + plt.legend() を使うことで、グラフ内に凡例が表示されます。
プレゼン資料や報告書で非常に役立つ機能です。
📐 実践:変数の関係を可視化して傾向を探る
例えば以下のように、商品の価格と売上数の関係を見ることで「価格が高いと売れにくいのか?」といった傾向を視覚的に分析できます。
price = [100, 200, 300, 400, 500]
sales = [500, 450, 300, 150, 100]
plt.scatter(price, sales, color="green", s=80)
plt.title("価格と売上数の関係")
plt.xlabel("価格(円)")
plt.ylabel("売上数(個)")
plt.grid(True)
plt.show()グラフを見れば、「価格が上がるほど売上が減っている」という負の相関が一目瞭然です。
💡 散布図の使いどころ
- 2つの変数の関係性を視覚化したいとき
- クラス分類やクラスタリング結果の可視化
- モデルの誤差分析(予測値 vs. 実測値)
✅ まとめ
| 学んだこと | 内容 |
|---|---|
| 基本の散布図 | plt.scatter(x, y) |
| カスタマイズ | 色(color)、サイズ(s)、透明度(alpha) |
| グループ分け表示 | 系列ごとに label をつけて legend() を使う |
| 実務活用例 | 相関や傾向をビジュアルに伝えるのに最適 |
散布図は「データのパターンや傾向を見つける」ための強力な可視化手段です。
次回は複数グラフの同時表示(subplot)を扱うので、さらに表現力がアップします!
📝 練習問題(理解度チェック)
- 以下のデータで散布図を作成し、点の色を
"purple"、サイズを80、透明度を0.5にして表示してください。
x = [5, 10, 15, 20, 25]
y = [2, 4, 5, 7, 8]- グループA(
x = [1, 2, 3],y = [3, 4, 2])と、グループB(x = [4, 5, 6],y = [6, 7, 8])のデータを、それぞれ異なる色でプロットし、凡例を付けて表示してください。
次回
【Pythonグラフ作成】複数グラフを1つの画面に描く|subplotの使い方をやさしく解説
前回の内容

コメント