Python で Seaborn のペアプロット

Manav Narula 2024年2月15日
Python で Seaborn のペアプロット

Python では、seaborn モジュールを使用してさまざまなタイプのグラフやプロットを作成し、データセットを視覚化します。さまざまな関数がさまざまなタイプのプロットを作成します。データセットを視覚化するには、1つのプロットでは不十分な場合があり、複数のグラフを同時にプロットする必要がある場合があります。pairplot() 関数はこれを助けることができます。

このチュートリアルでは、Python で seaborn モジュールの pairplot() 関数を使用する方法を紹介します。

これは、seaborn の PairGrid クラスに基づいており、そのタイプのオブジェクトを返します。また、データのすべての数値列を両方の軸にプロットし、さまざまなプロットの行列を表示します。対角線上に均一なグラフがあり、上三角と下三角に異なるプロットがある最終的な図が生成されます。

必要に応じて、pairplot() 関数内の x_varsy_vars、または vars 引数を使用して、プロットする必要のある変数を指定できます。

例えば、

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns


df = pd.DataFrame(
    {
        "Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
        "Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
        "Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
        "Product": [
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
        ],
    }
)
sns.pairplot(df)

Seaborn のペアプロット

上記のコードでは、pairplot() 関数の簡単な例を作成します。対角線上にプロットされたさまざまなグラフに注目してください。

いくつかの方法とパラメーターを使用して、最終結果を微調整できます。hue パラメータを使用して、さまざまなカテゴリをさまざまな色でプロットできます。palette 引数は、これに使用される色を定義できます。すべてのグラフに共通の凡例が追加されています。上記の例にこれを追加して、2つの製品を区別することができます。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
        "Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
        "Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
        "Product": [
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
        ],
    }
)
sns.pairplot(df, hue="Product", palette="husl")

色相パラメータを使用した seaborn のペアプロット

また、上下または三角形と対角線にプロットするグラフの種類を制御することもできます。diag_kind パラメーターは、対角線のプロットを指定するために使用され、kind パラメーターは残りのプロットを指定するために使用されます。それらの値は、regscatterkdehist、またはその他のプロットにすることができます。

例えば、

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns


df = pd.DataFrame(
    {
        "Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
        "Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
        "Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
        "Product": [
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
        ],
    }
)
sns.pairplot(df, hue="Product", diag_kind="hist", kind="scatter")

diag_kind パラメーターを使用した seaborn のペアプロット

対角線上などの個々のプロットをカスタマイズするには、plot_kws および diag_kws パラメーターを使用します。必要なカスタマイズを辞書のキーと値のペアとして渡します。height パラメータを使用して、個々のプロットの高さを変更することもできます。

さらに、PairGrid クラスのオブジェクトを返し、そのクラスのメソッドを使用して最終的な図をカスタマイズすることを忘れないでください。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn