【Python・Seaborn】箱ひげ図の上にスウォームプロットを重ねてデータポイントを可視化する方法
データの分布を可視化する際、箱ひげ図だけでは個々のデータポイントの位置を確認できません。そこで、箱ひげ図の上にスウォームプロットを重ねて描画すると、分布の要約統計と実際のデータポイントを同時に確認でき、より深い分析が可能になります。
実装方法はシンプルです。まず boxplot() を呼び出し、その後に同じx軸・y軸の値を指定して swarmplot() を呼び出すだけです。
Seabornの箱ひげ図とスウォームプロットとは
Seabornの箱ひげ図(Box Plot)は、カテゴリごとのデータ分布を示すためのグラフです。中央値、四分位範囲、外れ値などを一目で把握できます。描画には seaborn.boxplot() を使用します。
一方、スウォームプロット(Swarm Plot)は、データポイントが互いに重ならないように配置されたカテゴリカル散布図です。描画には seaborn.swarmplot() を使用します。
データセットの準備
ここでは、クリケット選手の情報を含むCSVファイル「Cricketers.csv」をデータセットとして使用します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import seaborn as sb import pandas as pd import matplotlib.pyplot as plt
CSVファイルからデータを読み込む
CSVファイルからデータを読み込み、PandasのDataFrameに格納します。
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\Cricketers.csv")
箱ひげ図の上にスウォームプロットを描画する
箱ひげ図の上にスウォームプロットを重ねて描画します。ここでは「Role(役割)」をx軸、「Age(年齢)」をy軸に指定しています。また、swarmplot() の color パラメータに「.25」を指定することで、データポイントを暗めのグレーで表示し、箱ひげ図との視認性を高めています。
sb.boxplot( x = 'Role', y = 'Age', data = dataFrame ) sb.swarmplot(x="Role", y="Age", data=dataFrame, color=".25")
サンプルコード全体
以下が完全なサンプルコードです。
import seaborn as sb
import pandas as pd
import matplotlib.pyplot as plt
# CSVファイルからデータを読み込み、PandasのDataFrameに格納
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\Cricketers.csv")
# 箱ひげ図を描画
sb.boxplot( x = 'Role', y = 'Age', data = dataFrame )
# 箱ひげ図の上にスウォームプロットを重ねて描画
sb.swarmplot(x="Role", y="Age", data=dataFrame, color=".25")
# グラフを表示
plt.show()
実行結果
上記のコードを実行すると、箱ひげ図の上に個々のデータポイントが重ねて表示されたグラフが出力されます。これにより、各カテゴリ内の分布の形状だけでなく、実際のデータのばらつきや集中している箇所まで直感的に把握できるようになります。

-
Seabornのswarmplotでorderパラメータを使って表示順序を制御する方法
Seabornのスウォームプロット(Swarm Plot)は、点が重ならないように自動調整されたカテゴリ別散布図を描画するためのグラフです。この描画には seaborn.swarmplot() 関数を使用します。order パラメータに明示的な順序(カテゴリ名のリスト)を渡すことで、特定の列を基準とした表示順序を自由に制御できます。 データセットの準備 ここでは、CSVファイル「Cricketers2.csv」の形式で保存されたデータセットを使用します。 必要なライブラリのインポート import seaborn as sb import pandas as pd import matplot
-
【Python】Seabornのバイオリンプロットでorderパラメータにより表示順序を制御する方法
Seabornのバイオリンプロット(Violin Plot)は、箱ひげ図とカーネル密度推定を組み合わせた可視化手法です。この描画には seaborn.violinplot() 関数を使用します。カテゴリの表示順序を制御したい場合は、order パラメータに明示的な順序を渡すことで実現できます。 ここでは、次のようなCSVファイル「Cricketers.csv」をデータセットとして使用します。 まず、必要なライブラリをインポートしましょう。 import seaborn as sb import pandas as pd import matplotlib.pyplot as plt 続いて、C