Seaborn BoxPlot

Manav Narula 2021年11月20日
Seaborn BoxPlot

Python の seaborn モジュールを使用して、さまざまな統計グラフとプロットを作成できます。seaborn.boxplot() 関数を使用して箱ひげ図を作成できます。

アナリストや統計学者は、箱ひげ図を使用して、さまざまなレベルまたはカテゴリにわたるデータを表すことがよくあります。箱ひげ図は、多くの統計値を伝えることができます。次の図はこれを説明しています。

箱ひげ図情報

boxplot() 関数は、データセットのカテゴリ値をプロットする際に効率的に機能し、単一のリストまたは配列ベクトルでも機能します。バイオリン図と非常によく似ています。

次の例では、単一の分布の箱ひげ図をプロットして、最終的な図を把握します。

import random
import numpy as np
import seaborn as sns

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

単一変数の箱ひげ図

箱ひげ図の上に散布図をプロットすることもできます。これにより、プロットされた分布と最終的な図をよりよく理解できます。

seaborn.stripplot() 関数を使用して散布図をプロットします。例えば、

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.stripplot(n, color="red")

箱ひげ図のストリッププロット

箱ひげ図を効率的に利用して、カテゴリ変数をプロットし、それらの比較を簡単にすることができます。次のコードでは、複数のカテゴリの箱ひげ図をプロットします。

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

カテゴリデータの箱ひげ図

上記のデータセットで、さまざまな数量の価格を簡単に比較できることに注目してください。hue パラメーターを追加し、その値を Product 変数として設定することもできます。このようにして、製品ごとに異なるボックスをプロットできるようになります。

matplotlib.pyplot.ylim()matplotlib.pyplot.xlim() を使用して、プロットの x 軸と y 軸に制限を設定できます。

さらに多くのパラメーターを使用して、最終的なプロットを微調整できます。linewidth パラメータを使用して、箱ひげ図の境界線の太さを増やすことができます。palette パラメータを使用して、さまざまなカテゴリの色をカスタマイズできます。方向は、orient 引数を使用して変更できます。使用できるそのような引数は他にもたくさんあります。

これらのパラメーターのいくつかのアプリケーションを理解するには、以下のコードを参照してください。

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

引数付きの複数の列の箱ひげ図

catplot() 関数を使用して箱ひげ図を作成することもできます。catplot() 関数は、カテゴリ値のプロットに非常に適しています。この関数を使用して箱ひげ図を作成するには、catplot() 関数の kind パラメーターの値を box として指定する必要があります。

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