Seaborn Swarmplot

Manav Narula 2021年11月20日
Seaborn Swarmplot

散布図は、使用される最も基本的で有用なグラフの 1つです。Python の seaborn モジュールは、このようなグラフをさらに一歩進めて、カテゴリ値を表すために使用できます。

スウォームプロットは、カテゴリ値を表すために使用される散布図の一種です。ストリッププロットと非常に似ていますが、ポイントのオーバーラップを回避します。seaborn.swarmplot() を使用して、このようなグラフを作成できます。

サンプルサイズが大きい場合、このタイプのグラフを使用することはお勧めできません。

次のコードでは、swarmplot() 関数を使用して、カテゴリ値のグラフを作成します。

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.swarmplot(data=df, y="Price", x="Quantity")

カテゴリデータの Seaborn スワームプロット

上記の例では、hue パラメーターを swarmplot() 関数に追加し、2つの異なる製品のカテゴリーを分離することができます。dodge 引数を使用して 2つの製品を分割し、True に設定できます。

さらに、swarmplot() 関数でも他の引数を使用できます。ポイントのサイズと色は、sizecolor 引数を使用して変更できます。palette パラメータを使用して、さまざまなカテゴリに使用される色の組み合わせを変更できます。linewidth 引数は、指定された幅のポイントに境界線を追加します。プロットされるカテゴリーの順序は、order パラメーターを使用して制御できます。

次の例では、上記の引数を利用しようとします。

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.swarmplot(
    data=df,
    y="Price",
    x="Quantity",
    hue="Product",
    dodge=True,
    linewidth=2.5,
    palette="Set2",
    size=10,
)

色相と他の議論を伴う Seaborn のスワームプロット

swarmplot() は、ボックスやバイオリン図の良い褒め言葉としても使用できます。それはデータの分布についての良い考えを与えます。

次のコードを使用して、群れプロットの上に箱ひげ図を追加できます。

import random
import numpy as np
import seaborn as sns

n = random.sample(range(0, 50), 30)
arr = np.array(n)
sns.boxplot(n)
sns.swarmplot(n, color="red")

swarmplot 上の Seaborn の箱ひげ図

catplot() 関数は、そのような群れプロットを作成することもできます。このために、catplot() 関数の kind パラメーターの値を swarm として指定する必要があります。

著者: 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