lineplot

Seabornを用いた線グラフ(lineplot)の作り方

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")
seaborn lineplot

データセットの形式変更

広形式のデータフレームに変換: 複数のデータを同時に表示できるよう、pivotメソッドを使用して、データセットを広形式に変換し、各年と月に対する乗客数を表示します。

  flights_wide = flights.pivot(index="year", columns="month", values="passengers")

全ての列をプロット: 広形式データセット全体を指定して、各列(月)に対する線グラフを描画します。

  sns.lineplot(data=flights_wide)
seaborn lineplot, all data

セマンティックなグループ化

hueパラメータの使用: hueを使用して、異なる月を異なる色でプロットします。

  sns.lineplot(data=flights, x="year", y="passengers", hue="month")
seaborn lineplot, semantic plot

さらなるカスタマイズ

異なるセマンティック変数の使用: fmriデータセットを用いて、異なるセマンティック変数(huestyle)を異なる列に割り当てます。

  fmri = sns.load_dataset("fmri")
  sns.lineplot(data=fmri, x="timepoint", y="signal", hue="region", style="event")
seaborn lineplot, customize

エラーバーのカスタマイズ: err_styleerrorbarパラメータを使用して、エラーバーの表示をカスタマイズします。

  sns.lineplot(
      data=fmri, x="timepoint", y="signal", hue="event", err_style="bars", errorbar=("se", 2)
  )
seaborn lineplot, errror bar

まとめ

seabornを用いてさまざまな線グラフ(lineplot)の作り方を見てきました。データの分析やプレゼンテーションに役立てていただけると幸いです。

上部へスクロール