Seaborn

Seaborn

SeabornMatplotlibを基盤とした高レベルのデータ可視化ライブラリで、美しく統計的なプロットを簡単に作成することができます。

以下にSeabornの便利な使い方をいくつか紹介します。

基本的なプロット

1. インポートとデータセットの準備

1
2
3
4
5
import seaborn as sns
import matplotlib.pyplot as plt

# サンプルデータセットのロード
tips = sns.load_dataset("tips")

2. 散布図 (Scatter Plot)

1
2
sns.scatterplot(x="total_bill", y="tip", data=tips)
plt.show()

[実行結果]

3. 線形回帰プロット (Regression Plot)

1
2
sns.lmplot(x="total_bill", y="tip", data=tips)
plt.show()

[実行結果]

カテゴリカルデータのプロット

4. 棒グラフ (Bar Plot)

1
2
sns.barplot(x="day", y="total_bill", data=tips)
plt.show()

[実行結果]

5. 箱ひげ図 (Box Plot)

1
2
sns.boxplot(x="day", y="total_bill", data=tips)
plt.show()

[実行結果]

6. バイオリンプロット (Violin Plot)

1
2
sns.violinplot(x="day", y="total_bill", data=tips)
plt.show()

[実行結果]

分布の可視化

7. ヒストグラム (Histogram)

1
2
sns.histplot(tips["total_bill"], bins=20, kde=True)
plt.show()

[実行結果]

8. カーネル密度推定 (KDE Plot)

1
2
sns.kdeplot(tips["total_bill"], shade=True)
plt.show()

[実行結果]

マトリックスプロット

9. 相関行列 (Heatmap)

1
2
3
4
5
6
7
8
9
# 数値データのみを抽出
numeric_tips = tips.select_dtypes(include=['float64', 'int64'])

# 相関行列の計算
corr = numeric_tips.corr()

# ヒートマップのプロット
sns.heatmap(corr, annot=True, cmap="coolwarm")
plt.show()

[実行結果]

10. ペアプロット (Pair Plot)

1
2
sns.pairplot(tips)
plt.show()

[実行結果]

高度なプロット

11. Facet Grid

複数のプロットをグリッド形式で表示することができます。

1
2
3
g = sns.FacetGrid(tips, col="sex", hue="smoker")
g.map(sns.scatterplot, "total_bill", "tip").add_legend()
plt.show()

[実行結果]

12. カスタマイズ

SeabornのプロットはMatplotlibのプロットオブジェクトとして返されるため、Matplotlibの関数でさらにカスタマイズできます。

1
2
3
4
5
ax = sns.barplot(x="day", y="total_bill", data=tips)
ax.set_title("Total Bill per Day")
ax.set_xlabel("Day of the Week")
ax.set_ylabel("Total Bill")
plt.show()

[実行結果]

スタイルの設定

Seabornはスタイルの設定が容易です。

以下のコードでデフォルトスタイルを変更できます。

1
2
3
sns.set_style("whitegrid")
sns.scatterplot(x="total_bill", y="tip", data=tips)
plt.show()

[実行結果]

他のスタイルにはdarkgridwhitedarkticksがあります。

一般的な設定

一度に複数の設定を行うこともできます。

1
2
3
4
5
6
sns.set_context("talk")
sns.set_palette("muted")
sns.set_style("whitegrid")

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

[実行結果]


これらの機能を使うことで、Seabornを用いて美しいデータビジュアライゼーションを簡単に作成することができます。

興味のあるプロットタイプデータセットに応じて、Seabornの多様な機能を試してみてください。