okpy

Pythonエンジニア兼テックリーダーが、多くのプロジェクトとチーム運営から得た実践的な知識を共有するブログです。

Python Seaborn: 統計的グラフ描画の美しさ

Python seaborn ライブラリ完全ガイド

Pythonseaborn は、美しく統計的に洗練されたグラフを簡単に描画できるライブラリです。本記事では、seaborn の概要と、よく使われる機能10選をソースコードとともに解説します。

1. seaborn ライブラリの概要

  • seabornmatplotlib をベースに構築されており、より高水準なインターフェースで統計的グラフを描画できます。
  • pandas の DataFrame に直接対応し、簡潔なコードで複雑な可視化が可能です。
  • 色彩、テーマ、レイアウトも一貫性があり、プレゼンやレポートに適しています。

インストール方法

pip install seaborn

2. 主な機能とソースコード例(10選)

(1) 散布図(scatterplot

import seaborn as sns
import matplotlib.pyplot as plt

df = sns.load_dataset("iris")
sns.scatterplot(x="sepal_length", y="sepal_width", hue="species", data=df)
plt.title("Iris 散布図")
plt.show()

(2) 回帰直線付き散布図(regplot

sns.set(style="whitegrid")
sns.regplot(x="sepal_length", y="petal_length", data=df)
plt.title("回帰分析")
plt.show()

(3) カテゴリ別棒グラフ(barplot

tips = sns.load_dataset("tips")
sns.barplot(x="day", y="total_bill", data=tips)
plt.title("曜日ごとの請求額平均")
plt.show()

(4) 箱ひげ図(boxplot

sns.boxplot(x="day", y="total_bill", data=tips)
plt.title("曜日別請求額の分布")
plt.show()

(5) バイオリンプロット(violinplot

sns.violinplot(x="day", y="total_bill", data=tips)
plt.title("Violin Plot")
plt.show()

(6) ペアプロット(pairplot

sns.pairplot(df, hue="species")
plt.suptitle("ペアプロット", y=1.02)
plt.show()

(7) 相関ヒートマップ(heatmap

import numpy as np
corr = df.drop("species", axis=1).corr()
sns.heatmap(corr, annot=True, cmap="coolwarm")
plt.title("相関マトリクス")
plt.show()

(8) カウントプロット(countplot

sns.countplot(x="day", data=tips)
plt.title("曜日ごとの来店数")
plt.show()

(9) スウォームプロット(swarmplot

sns.swarmplot(x="day", y="total_bill", data=tips)
plt.title("Swarm Plot")
plt.show()

(10) テーマの変更(set_theme

sns.set_theme(style="darkgrid")
sns.histplot(tips["total_bill"], bins=20)
plt.title("請求額のヒストグラム")
plt.show()

3. まとめ

seaborn は、少ないコードで美しく統計的に有用なグラフを作成できるため、データサイエンスや可視化の場面で非常に有用です。matplotlib よりも直感的で、DataFrame に最適化されているため、分析作業の効率が大幅に向上します。

きれいな可視化を素早く行いたいなら、まず seaborn を使ってみましょう! 📊