この記事では、Pythonのデータ可視化ライブラリSeabornを使用して複数のグラフを一つの図にまとめる方法について解説します。具体的なコード例とその解説、応用例を含めています。
目次
Seabornとは
SeabornはPythonのデータ可視化ライブラリであり、Matplotlibの上位互換とも言えるツールです。より美しいグラフを簡単に作成できる機能が多数含まれています。
基本的なグラフの作成
最初に基本的なグラフ作成方法から説明します。
import seaborn as sns
import matplotlib.pyplot as plt
# データのロード
tips = sns.load_dataset("tips")
# 単一のグラフを作成
sns.barplot(x="day", y="total_bill", data=tips)
# グラフを表示
plt.show()
上記のコードでは、Seabornの`barplot`関数を用いて、`tips`データセットの”day”と”total_bill”に基づいた棒グラフを作成しています。
複数のグラフを一つの図にまとめる
FacetGridを使用する方法
FacetGridを使用することで、複数のグラフを一つの図に簡単にまとめることができます。
# FacetGridを使って複数のグラフを一つにまとめる
g = sns.FacetGrid(tips, col="time", row="sex")
g.map(sns.barplot, "day", "total_bill")
# グラフを表示
plt.show()
この例では、`FacetGrid`関数で”time”と”sex”に基づいて複数の棒グラフを一つの図にまとめています。
subplotを使用する方法
`matplotlib.pyplot`の`subplot`関数も使用することで、手動で位置を設定できます。
# 2x2のグリッドでグラフを表示
fig, axes = plt.subplots(2, 2, figsize=(10, 10))
sns.barplot(x="day", y="total_bill", data=tips, ax=axes[0, 0])
sns.boxplot(x="day", y="total_bill", data=tips, ax=axes[0, 1])
sns.scatterplot(x="day", y="total_bill", data=tips, ax=axes[1, 0])
sns.lineplot(x="day", y="total_bill", data=tips, ax=axes[1, 1])
plt.show()
応用例
データのフィルタリングを行いながらグラフ作成
データをフィルタリングして特定の条件にマッチするものだけをプロットする例です。
# データをフィルタリング
filtered_tips = tips[tips['total_bill'] > 20]
# FacetGridを使ってグラフを作成
g = sns.FacetGrid(filtered_tips, col="time")
g.map(sns.barplot, "day", "total_bill")
# グラフを表示
plt.show()
カラーマッピングを活用
Seabornでは、グラフの要素に色を割り当ててさらに情報を視覚化することができます。
# カラーマッピングを活用してグラフを作成
sns.scatterplot(x="day", y="total_bill", hue="sex", data=tips)
# グラフを表示
plt.show()
まとめ
Seabornを使用して、複数のグラフを一つの図にまとめる方法は非常に簡単です。FacetGridやsubplotを用いることで、多角的なデータの視覚化が可能になります。これを機に、Seabornでより高度なデータ可視化に挑戦してみてはいかがでしょうか。
コメント