Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas入門:Seabornでカテゴリ変数ごとにグループ化した縦向きバイオリンプロットを描画する方法

Seabornのバイオリンプロット(Violin Plot)は、箱ひげ図(ボックスプロット)とカーネル密度推定(KDE)を組み合わせたグラフを描画できる強力な可視化手法です。データの分布形状と統計的な要約情報を同時に確認できるため、探索的データ分析でよく利用されます。

本記事では、seaborn.violinplot() 関数を使用して、カテゴリ変数でグループ化したデータの縦向きバイオリンプロットを描画する方法を解説します。

使用するデータセット

今回は、クリケット選手の情報をまとめたCSVファイル「Cricketers.csv」をデータセットとして使用します。

必要なライブラリのインポート

まず、Seaborn・Pandas・Matplotlibの各ライブラリをインポートします。

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

CSVファイルからデータを読み込む

pd.read_csv() を使って、CSVファイルのデータをPandas DataFrameに読み込みます。

dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\Cricketers.csv")

バイオリンプロットの描画

x軸にカテゴリ変数である「Role(役割)」、y軸に「Age(年齢)」を指定して、役割ごとにグループ化された年齢分布のバイオリンプロットを描画します。

sb.violinplot(x = 'Role', y = "Age", data = dataFrame)

完全なサンプルコード

以下に、一連の処理をまとめた完全なコード例を示します。

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")

# カテゴリ変数「Role」でグループ化し、
# 「Role」と「Age」の関係をバイオリンプロットで描画
sb.violinplot(x = 'Role', y = "Age", data = dataFrame)

# グラフを表示
plt.show()

実行結果

上記のコードを実行すると、役割(Role)ごとに年齢(Age)の分布が描かれた縦向きのバイオリンプロットが出力されます。バイオリンの幅が広い部分はデータが集中している箇所を示しており、各グループ内の年齢分布の違いをひと目で把握できます。


  1. Python Pandas入門:Seabornで箱ひげ図の上にスウォームプロット(観測値の群れ)を重ねて描画する方法

    データ分析において、分布の全体像を把握しながら個々のデータポイントも確認したい場面は多くあります。Seabornのスウォームプロット(Swarm Plot)は、点同士が重ならないように配置されたカテゴリ別散布図を描画する機能で、seaborn.swarmplot()を使用して実現できます。 本記事では、seaborn.boxplot()で描いた箱ひげ図の上に、このスウォームプロットを重ねて表示する方法を解説します。箱ひげ図だけでは見えない外れ値やデータの偏りを、視覚的に把握できるようになります。 前提条件と準備 まず、必要なライブラリをインポートします。Seaborn、Pandas、NumPy

  2. Python Pandas・Seabornのswarmplotで2つのカテゴリ変数を使ってデータをグループ化する方法

    Seabornのスウォームプロット(Swarm Plot)は、点が重ならないように配置されたカテゴリ別散布図を描画するための機能です。この描画には seaborn.swarmplot() を使用します。スウォームを2つのカテゴリ変数でグループ化したい場合は、swarmplot() の x、y、または hue パラメータにそれらの変数を指定します。 ここでは、CSVファイル「Cricketers2.csv」に保存されたデータセットを例に説明します。 必要なライブラリのインポート まず、必要なライブラリをインポートします。 import seaborn as sb import pandas as