Seabornで散布図を作成する方法 – PythonとPandasによるデータ可視化
Seabornのscatterplot()メソッドは、複数の意味的なグループ分けが可能な散布図を描画するための機能です。2つの数値変数の関係や相関を視覚的に把握したい場合に非常に便利なツールです。
Seabornのscatterplot()とは
seaborn.scatterplot()は、X軸とY軸にそれぞれ数値データを配置し、個々のデータを点(マーカー)としてプロットする関数です。hueパラメータを使えば、カテゴリごとに色分けした散布図も簡単に作成できます。
使用するデータセット
今回は、クリケット選手の情報をまとめたCSVファイル「Cricketers.csv」を使用します。このデータには、選手の年齢(Age)、体重(Weight)、役割(Role)などの列が含まれています。
必要なライブラリのインポート
まず、必要となる以下の3つのライブラリをインポートします。
import seaborn as sb import pandas as pd import matplotlib.pyplot as plt
CSVファイルからデータを読み込む
pandasのread_csv()関数を使って、CSVファイルのデータをDataFrameに読み込みます。
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\Cricketers.csv")例1:hueパラメータでカテゴリ別に色分けした散布図
年齢(Age)と体重(Weight)を軸に散布図を作成し、hueパラメータに「Role」を指定して役割ごとに色分けします。
sb.scatterplot(dataFrame['Age'], dataFrame['Weight'], hue=dataFrame['Role'])
完全なサンプルコード
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")
# 年齢と体重(kg)で散布図を作成
# hueパラメータに「Role」を設定
sb.scatterplot(dataFrame['Age'], dataFrame['Weight'], hue=dataFrame['Role'])
plt.ylabel("Weight (kgs)")
plt.show()実行結果
上記のコードを実行すると、役割(Role)ごとに色分けされた散布図が出力されます。年齢と体重の関係が、選手の役割によってどのように異なるのかをひと目で確認できます。

例2:hueパラメータなしのシンプルな散布図
次に、hueパラメータを指定しない基本的な散布図の例を見てみましょう。
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")
# 年齢と体重(kg)で散布図を作成
sb.scatterplot(dataFrame['Age'], dataFrame['Weight'])
plt.ylabel("Weight (kgs)")
plt.show()実行結果
このコードでは、すべてのデータポイントが同じ色でプロットされます。カテゴリによるグループ分けが必要ない場合は、こちらのシンプルな書き方で十分です。

補足:最新のSeabornで推奨される書き方
Seabornの新しいバージョン(v0.12以降)では、位置引数による指定は非推奨となっており、x・y・dataパラメータを明示的に指定する方法が推奨されています。
# 推奨される書き方 sb.scatterplot(x="Age", y="Weight", hue="Role", data=dataFrame)
この書き方では列名を文字列で直接渡せるため、コードの可読性が向上し、将来的なバージョンアップにも対応しやすくなります。
-
Python Pandas入門:Seabornでバイオリン図を描き、四分位数を水平線として表示する方法
Seabornのバイオリンプロット(Violin Plot)は、箱ひげ図(ボックスプロット)とカーネル密度推定(KDE)を組み合わせたグラフを描画するための機能です。seaborn.violinplot()メソッドを使用します。四分位数を水平線として表示するには、innerパラメータにquartileを指定します。データセットの準備ここでは、クリケット選手のデータが格納されたCSVファイル「Cricketers.csv」をデータセットとして使用します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import seaborn as sb import pandas as
-
Python Pandas入門:Seabornで箱ひげ図の上にスウォームプロット(観測値の群れ)を重ねて描画する方法
データ分析において、分布の全体像を把握しながら個々のデータポイントも確認したい場面は多くあります。Seabornのスウォームプロット(Swarm Plot)は、点同士が重ならないように配置されたカテゴリ別散布図を描画する機能で、seaborn.swarmplot()を使用して実現できます。 本記事では、seaborn.boxplot()で描いた箱ひげ図の上に、このスウォームプロットを重ねて表示する方法を解説します。箱ひげ図だけでは見えない外れ値やデータの偏りを、視覚的に把握できるようになります。 前提条件と準備 まず、必要なライブラリをインポートします。Seaborn、Pandas、NumPy