SeabornでFacetGridを使って複数のグラフを一気に作成する方法

SeabornのFacetGridはデータセット内の多次元の関係性を一度に複数のグラフで可視化できる非常に強力な機能です。この記事では、FacetGridの基本的な使い方から応用例まで詳しく解説します。

目次

FacetGridとは何か

FacetGridはSeabornの機能の一つで、複数のサブプロット(小さなグラフ)を生成し、それらに対してデータをマッピングすることができます。これにより、簡単に複数のグラフを一つの大きなグラフとして表示することができます。

基本的な使い方

FacetGridの生成

最も基本的な形でのFacetGridの生成方法は以下のとおりです。

import seaborn as sns
import matplotlib.pyplot as plt

# データセットの読み込み
df = sns.load_dataset('tips')

# FacetGridの生成
g = sns.FacetGrid(df, col='sex', row='time')

# グラフの表示
plt.show()

このコードは、`tips`データセット内の`sex`列と`time`列を基にして、FacetGridを生成します。`col`と`row`のパラメータによって、それぞれの列で異なるサブプロットが生成されます。

データのマッピング

FacetGridを生成しただけでは、サブプロットには何も表示されません。データをマッピングする必要があります。

# データのマッピング
g.map(sns.scatterplot, 'total_bill', 'tip')

この`map`メソッドによって、`total_bill`と`tip`という2つの変数に対する散布図がそれぞれのサブプロットに表示されます。

応用例

カラーマッピング

FacetGridでは、異なるカテゴリ変数によって点の色を変更することもできます。

# カラーマッピング
g = sns.FacetGrid(df, col='sex', row='time', hue='smoker')
g.map(sns.scatterplot, 'total_bill', 'tip')
g.add_legend()

この例では、`hue`パラメータに`smoker`を指定することで、喫煙者と非喫煙者が色で区別されます。

複数のグラフタイプ

一つのFacetGridに複数種類のグラフを描くこともできます。

# 複数のグラフタイプ
g = sns.FacetGrid(df, col='sex', row='time')
g.map(sns.scatterplot, 'total_bill', 'tip')
g.map(sns.lineplot, 'total_bill', 'tip')
g.add_legend()

この例では、散布図と折れ線グラフが同じサブプロットに表示されます。

まとめ

SeabornのFacetGridは、複数のサブプロットを簡単に作成し、様々な観点からデータを分析できる強力なツールです。基本的な使い方から応用例まで詳しく解説しましたので、ぜひこの機能を活用してデータ分析を進めてください。

コメント

コメントする

目次