Python

Python seaborn チュートリアル プロット機能 データの分布を可視化 (5)

原文のドキュメントはこちらから。

他の設定での分布の可視化

seabornの他のいくつかの図レベルのプロット関数は、histplot()とkdeplot()関数で提供される。

共同分布と限界分布のプロット

jointplot() は、二変量の関係図や分布図を、2つの変数の余白分布で補強する。デフォルトでjointplot() は、scatterplot() を用いて二変量分布を、 histplot() を用いて限界分布を表す。

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")

penguins = sns.load_dataset("penguins")
sns.jointplot(data=penguins, x="bill_length_mm", y="bill_depth_mm")

plt.show()

displot() と同様に、 jointplot() で異なる kind=”kde” を設定すると、 kdeplot() を使用するジョイント・プロットとマージナル・プロットの両方が変更される。

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")

penguins = sns.load_dataset("penguins")
sns.jointplot(
    data=penguins,
    x="bill_length_mm", y="bill_depth_mm", hue="species",
    kind="kde"
)

plt.show()

jointplot()はJointGridクラスへの便利なインターフェイスで、直接使用するとより柔軟性が増す。

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")

penguins = sns.load_dataset("penguins")
g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm")
g.plot_joint(sns.histplot)
g.plot_marginals(sns.boxplot)

plt.show()

余白分布を表示する別の方法に”ラグ”プロットがある。これは、個々の観測値・結果を表すためにプロットの端に小さなティックを追加する。(displot() に組み込まれている)

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")

penguins = sns.load_dataset("penguins")
sns.displot(penguins, x="bill_length_mm", y="bill_depth_mm", kind="kde", rug=True)

plt.show()

そして、軸レベルの rugplot() 関数は、他の種類のプロットの側面にラグを追加するために使用できる。

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")

penguins = sns.load_dataset("penguins")
sns.relplot(data=penguins, x="bill_length_mm", y="bill_depth_mm")
sns.rugplot(data=penguins, x="bill_length_mm", y="bill_depth_mm")

plt.show()

多くの分布をプロットする

pairplot() 関数は、ジョイント分布とマージナル分布の類似したブレンドを提供する。しかし、pairplot() は、単一の関係に焦点を当てるのではなく、データセット内のすべての変数の一変量分布を、それらのすべての対になった関係とともに可視化するために、「小さな倍数」のアプローチを使用する。

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")

penguins = sns.load_dataset("penguins")
sns.pairplot(penguins)

plt.show()

jointplot() / JointGrid と同様に、基礎となるPairGridを直接使用することで、少し処理を追加するとより柔軟な対応が可能になります。

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")

penguins = sns.load_dataset("penguins")
g = sns.PairGrid(penguins)
g.map_upper(sns.histplot)
g.map_lower(sns.kdeplot, fill=True)
g.map_diag(sns.histplot, kde=True)

plt.show()