【Python】JointGridの使用方法|seaborn基礎

JointGridの使用方法|seaborn基礎_アイキャッチ プログラミング

※ 当サイトはアフィリエイト広告を利用しています。

levtech-ad
スポンサーリンク

seabornを使用すると、Pythonを使用してデータを可視化することができます。

本記事では、seabornによるJointGridの使用方法について、詳しくご説明します。

こんな人に読んでほしい
  • Pythonを使用したデータの可視化方法を知りたい人
  • seabornによるJointGridの使用方法を知りたい人
levtech-ad

seabornとは

seabornは、Pythonを使用してデータを可視化するための外部ライブラリの1つです。

データ可視化用ライブラリは他にも複数あり、その中でも特にMatplotlibが有名です。

seabornはMatplotlibをベースに作られており、Matplotlibの描画機能を利用しています。

seabornの長所は、Matplotlibよりも美しい図を、より少ないコードで簡単に描ける点です。

本記事では、seabornによるJointGridの使用方法をご紹介します。

seabornのインストール

「seaborn」は、以下コマンドを入力することで、インストールすることができます。

コマンドの入力は、コマンドプロンプトあるいはターミナルから行います。

pip install seaborn

動作確認として、試しに以下を入力します。

import seaborn as sns

上記を入力してもエラーが発生しなければ、正常にインストールされています。

JointGridの使用方法

seaborn.JointGrid()関数を使用することで、JointGridを使用することができます。

JointGridとは、単変量プロットを使用して二変量プロットを描画するためのグリッドのことです。

JointGrid()関数の引数には、データセット、行データ、列データ等を指定します。

データセットの「penguins」を用いて、JointGridを使用してみます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm")
plt.show()
JointGridの描画(seaborn_penguins)

上グラフの通り、コンストラクターを呼び出すだけでは何もプロットされません。

JointGrid.plot()に一対の関数 (メインプロットとサブプロットの関数) を指定することで、プロットすることができます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm")
g.plot(sns.scatterplot, sns.histplot)
plt.show()
JointGridの描画(seaborn_penguins_JointGrid.plot)

JointGrid.plot()には、追加のキーワード引数を指定することができます。

JointGrid.plot()で指定したキーワード引数は、両方の関数に渡されます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm")
g.plot(sns.scatterplot, sns.histplot, alpha=.3, edgecolor=".1", linewidth=.8)
plt.show()
JointGridの描画(seaborn_penguins_JointGrid.plot_alpha=.3_edgecolor=".1"_linewidth=.8)

JointGrid.plot_joint()に加え、JointGrid.plot_marginals()を呼び出すことで、各関数に異なるキーワード引数を渡すことができます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm")
g.plot_joint(sns.scatterplot, s=100, alpha=.3, color="green")
g.plot_marginals(sns.histplot, kde=True, color="red")
plt.show()
JointGridの描画(seaborn_penguins_JointGrid.plot_JointGrid.plot_marginals)

データを割り当てずにグリッドを設定することもできます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
g = sns.JointGrid()
plt.show()
JointGridの描画(seaborn_penguins_without-data)

matplotlib.axes.Axesオブジェクトであるax_jointax_marg_xax_marg_yにアクセスし、プロットすることもできます

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
g = sns.JointGrid()
x, y = penguins["bill_length_mm"], penguins["bill_depth_mm"]
sns.scatterplot(x=x, y=y, ec="r", fc="none", s=100, linewidth=1.5, ax=g.ax_joint)
sns.histplot(x=x, fill=False, linewidth=2, ax=g.ax_marg_x, color="yellow")
sns.kdeplot(y=y, linewidth=2, ax=g.ax_marg_y, color="blue")
plt.show()
JointGridの描画(seaborn_penguins_matplotlib.axes.Axes)

プロットメソッドでは、変数xおよびyを受け入れる任意のseaborn関数を使用できます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm")
g.plot(sns.regplot, sns.boxplot)
plt.show()
JointGridの描画(seaborn_penguins_regplot_boxplot)

hueを指定すると、カテゴリ別に描画できます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm", hue="species")
g.plot(sns.scatterplot, sns.histplot)
plt.show()
JointGridの描画(seaborn_penguins_hue="species")

JointGrid.refline()を使用することで、すべてのファセットに水平または垂直の基準線を追加することができます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm")
g.plot(sns.scatterplot, sns.histplot)
g.refline(x=45, y=16)
plt.show()
JointGridの描画(seaborn_penguins_refline)

Figure は (matplotlib レイヤーでサイズを変更しない限り) 常に正方形ですが、全体のサイズとレイアウトは変更可能です。

heightでサイズを、ratioでジョイント軸とマージン軸の間の相対比を、spaceでプロット間のスペースを指定することができます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
sns.JointGrid(height=4, ratio=2, space=.05)
plt.show()
JointGridの描画(seaborn_penguins_height=4_ratio=2_space=.05)

marginal_ticks=Trueとすることで、周辺プロットの密度軸の目盛りを表示することができます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
sns.JointGrid(marginal_ticks=True)
plt.show()
JointGridの描画(seaborn_penguins_marginal_ticks=True)

Figureを設定するときに、縦横のデータ軸の上限・下限も定義することができます。

#input
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# データセットの読み込み
penguins = sns.load_dataset("penguins")

# JointGridの指定・描画
sns.set_style("darkgrid")
sns.JointGrid(xlim=(-2, 5), ylim=(0, 10))
plt.show()
JointGridの描画(seaborn_penguins_xlim=(-2, 5)_ylim=(0, 10))

まとめ

この記事では、seabornによるJointGridの使用方法について、ご説明しました。

本記事を参考に、ぜひ試してみて下さい。

参考

Python学習用おすすめ教材

Pythonの基本を学びたい方向け

統計学基礎を学びたい方向け

Pythonの統計解析を学びたい方向け

おすすめプログラミングスクール

Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。

私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。

現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。

無料体験ができますので、まずは試してみてください!

\まずは無料体験!/
スポンサーリンク
タイトルとURLをコピーしました