Seabornによる散布図(scatterplot)作成の例
Seabornライブラリを活用したScatterplotの例をご紹介します。このチュートリアルでは、tipsデータセットを例に、散布図の基本的な描画方法から、さまざまなセマンティックなマッピングの適用方法までを学びます。tipsはチップの額に関するデータセットで、seabornが提供してくれるものです。tipsデータセットには数値変数とカテゴリカル変数が混在しており、この多様性を利用して散布図の豊富な表現を探ります。
まず、Seabornのload_dataset関数を使ってtipsデータセットを読み込みます。
import seaborn as sns
sns.set_theme()
tips = sns.load_dataset("tips")
tips.head()
基本的な散布図
2つの変数間の散布図を描画するには、scatterplot関数にデータフレームとx、y軸に使用する変数名を指定します。
sns.scatterplot(data=tips, x="total_bill", y="tip")

色(hue)を使用したグルーピング
hueパラメータを使用することで、点の色を変え、異なるカテゴリのデータを区別できます。
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="time")

スタイル(style)でマーカーを変更
styleパラメータを使用して、マーカーの形状を変更し、よりアクセシブルなプロットを作成します。
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="time", style="time")

色(hue)とスタイル(style)の独立した変更
hueとstyleを異なる変数に割り当てることで、色とマーカーを独立して変更できます。
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="day", style="time")

数値データのセマンティックマッピング
hueに数値変数を割り当てると、量的なマッピングが適用され、デフォルトのパレットが変わります。
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="size")

カスタムパレットの適用
カテゴリカルなマッピングを強制するために、カテゴリカルパレット名や明示的な色を指定します。
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="size", palette="deep")

サイズ(size)によるセマンティックマッピング
sizeパラメータに数値変数を割り当てることで、点の大きさにセマンティックなマッピングを適用します。
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="size", size="size")

カスタムマーカーの使用
markersパラメータにリストや辞書を渡すことで、スタイル変数に応じた特定のマーカーを指定できます。
markers = {"Lunch": "s", "Dinner": "X"}
sns.scatterplot(data=tips, x="total_bill", y="tip", style="time", markers=markers)

マーカーの形を任意に設定
matplotlib.axes.Axes.scatterに直接渡される追加のキーワード引数を使用して、任意にマーカーの形を設定できます。
sns.scatterplot(data=tips, x="total_bill", y="tip", s=100, color=".2", marker="+")

wide-formデータの使用
wide-formデータを使用すると、各列がインデックスに対してプロットされ、hueとstyleマッピングも使用できます。
import pandas as pd
import numpy as np
index = pd.date_range("1 1 2000", periods=100, freq="m", name="date")
data = np.random.randn(100, 4).cumsum(axis=0)
wide_df = pd.DataFrame(data, index, ["a", "b", "c", "d"])
sns.scatterplot(data=wide_df)

複数のサブプロットへの分割
relplotを使用してscatterplotとFacetGridを組み合わせ、追加のカテゴリカル変数によるグルーピングを複数のサブプロットに渡って描画します。
sns.relplot(
data=tips, x="total_bill", y="tip",
col="time", hue="day", style="day",
kind="scatter"
)

まとめ
seabornを用いてさまざまな散布図の作り方を見てきました。データの分析やプレゼンテーションに役立てていただけると幸いです。
散布図の描き分けは、関数の書き方を覚えるより「何を見たいか」から逆算するほうが早く身につきます。データ分析やWeb開発を体系立てて学べる場として、SiiDの概要をまとめました。
AIプログラミングスクール「SiiD」について
AIプログラミングスクール「SiiD」は、未経験からITエンジニア転職を目指す方向けのオンラインスクールです。
SiiDの特徴
- 現役エンジニアでYouTube登録者約13万人の「セイト先生」が代表兼主任講師
- 採用側の実務知見(2,000人以上の選考・150名以上のエンジニア採用)にもとづく指導
- 生成AIを取り入れた学習設計と、実務レベルのフルスタックWeb開発スキル
- Workship CAREER(株式会社GIG)と連携した無料の転職伴走支援
- 経済産業省認定のReスキル講座で、給付金の条件を満たせば実質105,600円〜
- 学割あり(35%オフ)
こんな方におすすめ
- 未経験・文系・社会人からITエンジニア転職を本気で目指したい方
- 独学に限界を感じている方
- 費用を抑えながら実務スキルと転職サポートを両立したい方
「未経験だから」とあきらめる必要はありません。採用する側を知り尽くしたプロが、給付金で負担を抑えながら内定まで伴走します。