Seabornのlineplot
は、線グラフを作るためのツールです。二つのデータ点を線でつなぐ線グラフは、データの変化や傾向を見るのに役立ちます。
この機能の特徴は、データを色々な基準(セマンティクス)で分けて、それぞれ異なる見た目(色、線の太さ、点や線のスタイルなど)でグラフに表示できる点です。例えば、「色」を使って異なるカテゴリーを示したり、「線の太さ」で数値の大きさを表したりすることができます。
主要なパラメータ:
- data: pandas.DataFrame, numpy.ndarray, mapping, sequenceなどの入力データが使用可能です。
- x, y: データ内のキーまたはベクトル。x軸およびy軸上の位置を指定する変数です。
- hue: 異なる色の線を生成するためのグループ化変数です。カテゴリカルまたは数値のいずれかであり、後者の場合、色のマッピングは異なる挙動をします。
- size: 異なる幅の線を生成するためのグループ化変数です。カテゴリカルまたは数値のいずれかであり、後者の場合、サイズのマッピングは異なる挙動をします。
- style: 異なるダッシュやマーカーで線を生成するためのグループ化変数です。数値型を持つことができますが、常にカテゴリカルとして扱われます。
その他のパラメータ:
- estimator: 中心傾向を推定する方法です。
'mean'
(平均)がデフォルト。 - errorbar: 信頼区間やエラーバーをどのように表示するかを指定します。デフォルトは
('ci', 95)
で、95%の信頼区間を示します。 - palette: 色の選択方法を指定します。hueセマンティックをマッピングする際に使用されます。
Seabornによる線グラフ(lineplot)の作成例
ここからはチュートリアルを通して、さまざまな線グラフの作成例を見ていきましょう。
基本的な線グラフの作成
まずはデータセットの読み込みす。 Seabornにはflights
データセットが含まれており、これを使用して線グラフを作成します。このデータセットには、1949年から1959年までの10年間にわたる月間航空会社乗客数のデータが含まれています。
import seaborn as sns
sns.set_theme()
flights = sns.load_dataset("flights")
次に線グラフを描画します。 特定の月(例: 5月)のデータをフィルタリングし、年ごとの乗客数の変化を示す線グラフを描画します。
may_flights = flights.query("month == 'May'")
sns.lineplot(data=may_flights, x="year", y="passengers")
データセットの形式変更
広形式のデータフレームに変換: 複数のデータを同時に表示できるよう、pivot
メソッドを使用して、データセットを広形式に変換し、各年と月に対する乗客数を表示します。
flights_wide = flights.pivot(index="year", columns="month", values="passengers")
全ての列をプロット: 広形式データセット全体を指定して、各列(月)に対する線グラフを描画します。
sns.lineplot(data=flights_wide)
セマンティックなグループ化
hue
パラメータの使用: hue
を使用して、異なる月を異なる色でプロットします。
sns.lineplot(data=flights, x="year", y="passengers", hue="month")
さらなるカスタマイズ
異なるセマンティック変数の使用: fmri
データセットを用いて、異なるセマンティック変数(hue
とstyle
)を異なる列に割り当てます。
fmri = sns.load_dataset("fmri")
sns.lineplot(data=fmri, x="timepoint", y="signal", hue="region", style="event")
エラーバーのカスタマイズ: err_style
とerrorbar
パラメータを使用して、エラーバーの表示をカスタマイズします。
sns.lineplot(
data=fmri, x="timepoint", y="signal", hue="event", err_style="bars", errorbar=("se", 2)
)
まとめ
seabornを用いてさまざまな線グラフ(lineplot)の作り方を見てきました。データの分析やプレゼンテーションに役立てていただけると幸いです。