Python × データ可視化:Matplotlib と Seaborn を使いこなす実務入門

はじめに

データ分析や機械学習の現場で欠かせないのが「データ可視化」です。Pythonにはさまざまな可視化ライブラリがありますが、特に MatplotlibSeaborn は定番中の定番です。
本記事では、これらのライブラリを実務でどう使い分けるのか、そして実際に使えるサンプルコードとともに解説します。


1. Matplotlib と Seaborn の特徴と使い分け

Matplotlib

  • Pythonの標準的な可視化ライブラリ
  • 低レベルな描画制御が可能で、細かい調整が必要な場合に強い
  • 公式ドキュメントや利用例が豊富

Seaborn

  • Matplotlibをベースに開発された高レベルライブラリ
  • 統計的データ可視化に強く、見た目がデフォルトで美しい
  • DataFrameと相性が良く、Pandasとの組み合わせで効率的

👉 実務では「まずSeabornでサッと描画 → 必要ならMatplotlibでカスタマイズ」という流れが効率的です。


2. 基本の可視化:Matplotlib 入門

折れ線グラフ

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 7, 1, 0]

plt.plot(x, y, marker="o", linestyle="-", color="b", label="Sample Data")
plt.title("Matplotlib 折れ線グラフ")
plt.xlabel("X軸")
plt.ylabel("Y軸")
plt.legend()
plt.show()
  • plot() で折れ線グラフを描画
  • marker, linestyle, color で装飾可能
  • legend() で凡例追加

3. Seaborn で統計的可視化

散布図(回帰直線付き)

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# サンプルデータ
df = pd.DataFrame({
    "x": [1,2,3,4,5,6,7,8,9,10],
    "y": [1,1.5,3,4.2,4.8,6.1,7.3,7.9,9.1,9.8]
})

sns.lmplot(x="x", y="y", data=df, height=5, aspect=1.2)
plt.title("Seaborn 散布図+回帰直線")
plt.show()
  • lmplot で回帰分析付きの散布図を一行で描画
  • 統計的な傾向をすぐ確認できる

4. 実務でよく使う可視化パターン

① ヒストグラム(データ分布確認)

sns.histplot(df["y"], bins=5, kde=True)
plt.title("データ分布(ヒストグラム+カーネル密度推定)")
plt.show()

② 箱ひげ図(外れ値確認)

sns.boxplot(x=df["y"])
plt.title("外れ値確認用の箱ひげ図")
plt.show()

③ ヒートマップ(相関関係)

import numpy as np

# 疑似データ
corr = np.corrcoef([df["x"], df["y"]])
sns.heatmap([[1, corr[0,1]], [corr[1,0], 1]], annot=True, cmap="coolwarm")
plt.title("相関係数のヒートマップ")
plt.show()

5. Matplotlib × Seaborn の合わせ技

Seabornで描画したグラフは、Matplotlibの機能を使ってさらに細かく調整可能です。

fig, ax = plt.subplots(figsize=(6,4))
sns.scatterplot(x="x", y="y", data=df, ax=ax)
ax.set_title("Matplotlibでタイトル調整")
ax.set_xlabel("X値")
ax.set_ylabel("Y値")
plt.show()

👉 このように両者を組み合わせれば、

  • Seabornで統計的に美しく描画
  • Matplotlibで細部をカスタマイズ
    という実務に最適な使い方ができます。

まとめ

  • Matplotlib → 基本描画・細かい制御に強い
  • Seaborn → データフレームと統計可視化に強く、見た目も美しい
  • 実務では「Seabornでまず描く → 必要ならMatplotlibで調整」がベスト

データ分析を効率化するには「見やすい可視化」が必須です。本記事のサンプルをベースに、ぜひ自分のデータで試してみてください。

タイトルとURLをコピーしました