Skip to content
チュートリアル
Seaborn
📊 Seaborn Boxplot チュートリアル:Python でカスタムボックスプロットを作成する方法

📊 Seaborn Boxplot チュートリアル:Python でカスタムボックスプロットを作成する方法

ボックスプロットは、データ分布の理解とデータの統計的な要約を提供するデータサイエンスの分野で重要なツールです。特に、データサイエンスのプロジェクトの探索的データ分析(EDA)のフェーズで役立ちます。このチュートリアルでは、Python の強力な統計グラフィックスおよびデータの視覚化ツールである Seaborn ライブラリを使用してボックスプロットを作成する方法に焦点を当てます。Seaborn のボックスプロット関数、seaborn.boxplot() の構文とカスタマイズ方法について掘り下げます。

Seaborn は、matplotlib を基にした Python のデータ視覚化ライブラリです。魅力的で情報を提供する統計的なグラフィックスを描くためのシンプルなインターフェイスを提供します。Seaborn の主な特徴の1つは、データの 5 番目の要約のグラフィカルな表現であるボックスプロットを作成できることです。Seaborn のボックスプロット関数、seaborn.boxplot() は、これらのプロットを簡単に柔軟に作成できるパワフルなツールです。

Python パンダスデータフレームからコードなしでデータ視覚化を迅速に作成したいですか?

PyGWalker は、データ視覚化における Python ライブラリです。 PyGWalker (opens in a new tab) は、Jupyter Notebook のデータ解析とデータ視覚化ワークフローを簡素化することができます。パンダスデータフレーム(およびポーラデータフレーム)を Tableau スタイルのユーザーインターフェイスに変換して視覚的な探索が可能です。

データの視覚化のための PyGWalker (opens in a new tab)

Seaborn ボックスプロットとは、どのように使用されるのか?

Seaborn のボックスプロットは、四分位数を通じて数値データのグループをグラフィカルに表現する方法です。ボックスプロットはデータの視覚的な要約を提供し、ボックスは四分位範囲(データの中央 50%)を表し、ボックス内の線は中央値を表します。また、ひげはデータの範囲を示します。外れ値がある場合は、ひげの外側に個々の点として表示されます。

ボックスプロットは、異なるデータセット間の分布を比較するために使用されます。たとえば、異なる教室間のテストスコアの分布や異なる月の気温の分布を比較したい場合があります。Seaborn のボックスプロット関数を使用すると、これらのプロットを簡単に作成し、必要に応じてカスタマイズすることができます。

Python で Seaborn ボックスプロットを作成する

Seaborn のボックスプロットを作成するには、まず Seaborn ライブラリをインポートする必要があります。次のコード行でこれを行うことができます。

import seaborn as sns

次に、データを読み込む必要があります。Seaborn は Pandas データフレームを扱うことができるため、データをデータフレームに読み込んでから、Seaborn のボックスプロット関数に渡すことができます。以下に例を示します。

## デフォルトの tips データセットを読み込む
tips = sns.load_dataset("tips")
 
## ボックスプロットを作成する
sns.boxplot(x=tips["total_bill"])

この例では、Seaborn の組み込み tips データセットを読み込み、合計請求金額のボックスプロットを作成しています。

Seaborn ボックスプロットの外観をカスタマイズする

Seaborn のボックスプロットは、外観を多様にカスタマイズして、より情報を提供し、見栄えを向上させることができます。Seaborn ボックスプロットをカスタマイズするいくつかの例を紹介します。

方向の変更

デフォルトでは、Seaborn は垂直なボックスプロットを作成します。ただし、x パラメータと y パラメータを切り替えることで水平なボックスプロットを作成することもできます。以下に例を示します。

## 水平なボックスプロットを作成する
sns.boxplot(y=tips["total_bill"])

Hue の追加

ボックスプロットに hue パラメータを追加すると、別のカテゴリ変数でボックスを分割することができます。これにより、異なるグループ間の分布を比較するのに役立ちます。以下に例を示します。

## Hue を指定したボックスプロットを作成する
sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips)

この例では、曜日ごとに顧客が喫煙者かどうかによって合計請求金額を分割したボックスプロットを作成しています。

ボックスの色のカスタマイズ

Seaborn では、ボックスプロットの色をカスタマイズすることができます。これは、boxplot 関数の palette パラメータにカラーパレットを渡すことで実現できます。以下に例を示します。

## カスタムカラーでボックスプロットを作成する
sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set3")

この例では、"Set3" カラーパレットを使用してボックスプロットの色を設定しています。

ひげの変更

デフォルトでは、Seaborn のボックスプロットのひげは外れ値を除いたデータの範囲を表します。ただし、boxplot 関数の whis パラメータに異なる値を渡すことで、これを変更することができます。たとえば、whis を 0.5 に設定すると、ひげはデータの第 5 パーセンタイルと第 95 パーセンタイルを表します。以下に例を示します。

## カスタムひげでボックスプロットを作成する
sns.boxplot(x="day", y="total_bill", data=tips, whis=0.5)

Seaborn ボックスプロット vs バイオリンプロット

Seaborn は、ボックスプロットにカーネル密度推定を組み合わせたバイオリンプロットという別のプロットタイプも提供しています。バイオリンプロットはデータの分布のより詳細な情報を提供するため、ボックスプロットよりも豊かな記述を提供します。

ただし、バイオリンプロットは解釈がより複雑であり、すべての観客に適しているわけではありません。一方、ボックスプロットはわかりやすく広く理解されており、多くの状況に適した選択肢です。

以下に、Seaborn でバイオリンプロットを作成する例を示します。

## バイオリンプロットを作成する
sns.violinplot(x="day", y="total_bill", data=tips)

Seabornボックスプロットの解釈

seabornのボックスプロットを解釈するには、プロットの異なるコンポーネントを理解する必要があります。真ん中の箱は四分位範囲(IQR)を表し、それは第1四分位(25番目のパーセンタイル)と第3四分位(75番目のパーセンタイル)の間の範囲です。箱の内側の線は中央値、またはデータの50番目のパーセンタイルです。ひげは、1.5倍のIQR内のデータの範囲を表しています。この範囲外のデータポイントは外れ値として扱われ、個別のポイントとして表されます。

次は、seabornボックスプロットの解釈方法の例です:

## ボックスプロットを作成する
sns.boxplot(x="day", y="total_bill", data=tips)

このボックスプロットでは、各日の中央値の合計請求額を、各箱の内側の線で表されます。箱はIQRを表しているので、各日の顧客の中央50%の合計請求額の範囲を確認できます。ひげは、1.5倍のIQR内の合計請求額の範囲を示し、この範囲外のポイントは外れ値です。

Seabornボックスプロットの注釈

Seabornボックスプロットには、追加情報を提供するために注釈を追加できます。たとえば、中央値、四分位数、または外れ値に値を注釈付けることができます。次は、seabornボックスプロットに注釈を追加する方法の例です:

## ボックスプロットを作成する
ax = sns.boxplot(x="day", y="total_bill", data=tips)
 
## 注釈を追加する
for patch in ax.artists:
    r, g, b, a = patch.get_facecolor()
    patch.set_facecolor((r, g, b, .3))
    x = patch.get_x()
    y = patch.get_y()
    width = patch.get_width()
    height = patch.get_height()
    ax.text(x+width/2, y+height/2, "{:.2f}".format(height), ha='center', va='center')
 
plt.show()

この例では、ボックスプロットに注釈を追加して、各箱の高さを表示しています。これはIQRを表しています。

結論

結論として、seabornのボックスプロットは、データの分布を視覚化し理解するための強力なツールです。seabornライブラリを使用すると、わずか数行のコードで魅力的で情報量の多いボックスプロットを作成することができます。新しいデータセットを探索したり、レポートを準備したりする際に、seabornのボックスプロットは必要な洞察を得るのに役立ちます。

FAQ

Seabornボックスプロットとは何ですか?どのように使用されますか?

Seabornボックスプロットはデータセットの分布をグラフィカルに表したもので、データの中央値、四分位数、外れ値を表示します。データの分布を視覚化し理解するために使用され、異なるデータグループ間の分布を比較するためにも使用されます。

PythonでSeabornボックスプロットを作成するにはどうすればよいですか?

PythonでSeabornボックスプロットを作成するには、seaborn.boxplot()関数を使用します。この関数にデータを渡す必要があり、さまざまなパラメータを使用してボックスプロットの見た目をカスタマイズすることができます。

Seabornボックスプロットの見た目をカスタマイズする方法はありますか?

Seabornボックスプロットの見た目をさまざまな方法でカスタマイズすることができます。方向の変更、hueの追加、色のカスタマイズ、ひげの変更などがあります。また、追加情報を提供するために注釈を追加することもできます。