alterlab-seaborn について
Python と pandas の DataFrame を使う分析者向けに、Seaborn による統計可視化を案内するスキルです。多様なプロット、統計推定、ファセット配置を扱い、必要に応じて matplotlib で調整できます。
主な機能
- 01関係・分布・カテゴリ別プロット
- 02回帰・行列の可視化
- 03ファセット・複数パネル配置
- 04セマンティックマッピングと統計推定
- 05配色・テーマ・matplotlib による調整
活用シーン
- 01DataFrame 内の変数間の関係を探索
- 02カテゴリ間の分布を比較
- 03相関ヒートマップや回帰プロットを作成
- 04出版向けの複数パネル図を作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alterlab-ieu/ alterlab-academic-skills --skill alterlab-seabornインストール後、Claude Code で/alterlab-seabornを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonreferences/best_practices_and_troubleshooting.mddata_palettes_theming.mdexamples.mdfunction_reference.mdobjects_interface.mdplotting_functions.md詳細
Seaborn による統計的可視化
概要
Seaborn は、出版品質の統計グラフィックスを作成するための Python 可視化ライブラリです。最小限のコードで、データセットを中心としたプロット、多変量解析、自動統計推定、複雑なマルチパネル図を作成する場合にこのスキルを使用します。
このスキルを使用する場面
pandas の DataFrame から直接、分布、関係、カテゴリ別の比較、相関ヒートマップ、ファセット化した小分割図など、手軽で見栄えのよい統計グラフィックスを作成するには seaborn を使用します。
対象外
| シナリオ | 代わりに使用 |
|---|---|
| ホバー、ズーム、HTML ダッシュボードを備えたインタラクティブなチャート | alterlab-plotly |
| 学術誌や論文向けの厳密なスタイル(カラム幅、ポイントサイズのフォント、CMYK、ベクター形式でのエクスポート) | alterlab-scientific-viz |
| FacetGrid/PairGrid を超える、個々のアーティストやレイアウトの低レベルな制御 | alterlab-matplotlib(seaborn の Axes レベルのプロットでは ax= を受け取れます) |
| データファイル全体の探索的データ分析レポート(構造、品質、要約統計量) | alterlab-eda |
| 比較に使用する統計検定の選択と実行 | alterlab-statistical-analysis |
設計思想
- データセット中心 — 抽象的な座標ではなく、DataFrame と名前付き変数を直接扱います。
- セマンティックマッピング — データ値を視覚的なプロパティ(色、サイズ、スタイル)に自動的に対応付けます。
- 統計を考慮 — 集計、誤差推定、信頼区間が組み込まれています。
- 美しいデフォルト設定 — 出版品質のテーマとパレットをすぐに利用できます。
- Matplotlib との統合 — 必要に応じて matplotlib によるカスタマイズと完全に互換性があります。
クイックスタート
例は seaborn ≥ 0.13 を対象としています(0.13.2 で検証済み。2026 年 9 月時点でも最新リリースです)。このバージョンで注意すべき API のポイントが 2 つあります。palette= は hue= と併せて指定してください(hue なしでの palette の使用は非推奨で、v0.14 で削除予定です)。また、エラーバーのスタイル設定には、非推奨で v0.15 で削除予定の errcolor/errwidth/scale/join キーワードではなく、err_kws={...} を使用してください。
matplotlib 3.11 ではすべてのプロット関数が引き続き動作しますが、boxplot(および catplot(kind="box"))では vert に関する MatplotlibDeprecationWarning が、heatmap では set_bad に関する PendingDeprecationWarning が発生します。どちらも seaborn の内部処理によるもので、現時点では無害です。matplotlib 3.13 では vert が削除される予定のため、seaborn のリリースで対応されるまでは、sns.boxplot に依存する環境では matplotlib<3.13 に固定してください。
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
df = sns.load_dataset('tips')
sns.scatterplot(data=df, x='total_bill', y='tip', hue='day')
plt.show()
基本的なワークフロー
- データの形を整える — ロング形式(「tidy」形式)にします。各変数を列に、各観測値を行に配置します。この形式はすべての seaborn 関数で使用できます。ワイド形式のデータは
df.melt(...)で整形します。references/data_palettes_theming.mdを参照してください。 - プロットのカテゴリを選ぶ — 変数の型に合わせて選択します(以下の選択ガイドを参照)。
- 追加の次元を表現する —
hue、size、styleによるセマンティックマッピングを使用します。 - Axes レベルか Figure レベルかを選ぶ — Axes レベル(
scatterplot、boxplot、heatmap、…)はax=を使ってカスタム matplotlib レイアウトに組み込めます。Figure レベル(relplot、displot、catplot、lmplot、…)は図全体を管理し、col/rowでファセット化します。 - テーマを設定して保存する —
set_theme/set_contextとsavefig(dpi=300, bbox_inches='tight')を使用します(ベクター形式には PDF を使用)。
プロットカテゴリの選択
カテゴリを選び、各カテゴリのパラメーターとコードについては references/plotting_functions.md を参照してください。
| 目的 | カテゴリ | 主な関数 |
|---|---|---|
| 変数間の関係を確認する | 関係 | scatterplot、lineplot、relplot |
| 分布/形状/密度を確認する | 分布 | histplot、kdeplot、ecdfplot、displot、jointplot、pairplot |
| カテゴリ間で比較する | カテゴリ | stripplot、swarmplot、boxplot、violinplot、barplot、pointplot、countplot、catplot |
| 線形関係/残差を確認する | 回帰 | regplot、lmplot、residplot |
| 行列/相関を確認する | 行列 | heatmap、clustermap |
| カスタムの複数パネルグリッドを作成する | グリッド | FacetGrid、PairGrid、JointGrid |
モダンな宣言型の seaborn.objects インターフェース(ggplot2 のように構成可能)は、複雑なレイヤー構成のプロットやプログラムによるプロットに最適です。詳しくは references/objects_interface.md を参照してください。
色とテーマ設定(基本)
- 質的パレットはカテゴリ向け(
"colorblind"、"deep"、"muted")、逐次パレットは順序付きデータ向け("rocket"、"viridis")、発散パレットは中心を持つデータ向けです("vlag"、"coolwarm"、center=0を指定)。 set_theme(style=..., context=..., palette=...)を使用します。スタイルにはwhitegrid/ticks/… があり、コンテキストはpaper→talk→posterの順に要素のサイズが大きくなります。
パレットとテーマ設定の詳細については、references/data_palettes_theming.md を参照してください。
ベストプラクティス(基本)
- 名前付きの DataFrame 列からプロットを作成すると、軸ラベルが保持されます。ファセットには図レベルの関数を使用し、
hue/size/styleで追加の次元を表現します。 - 各関数が何を推定するかを把握してください。
lineplot/barplotは平均値と信頼区間を自動計算するため、errorbar=とestimator=で上書きできます。 - 微調整には matplotlib(
ax.set(...)、axhline、tight_layout)を組み合わせます。解像度dpi=300で保存し、出版物には PDF を使用します。
ベストプラクティス、よくあるパターン、トラブルシューティング(凡例の配置、ラベルの重なり、図のサイズ、パレットの識別性、KDE の帯域幅)については、references/best_practices_and_troubleshooting.md を参照してください。
リファレンス一覧
references/plotting_functions.md— 各プロットカテゴリのパラメーターとコード(関係、分布、カテゴリ、回帰、行列、複数プロットのグリッド、図レベルと軸レベル)。references/data_palettes_theming.md— ロング形式/ワイド形式のデータ構造、カラーパレット(質的/逐次/発散/カスタム)、テーマ設定(set_theme、スタイル、コンテキスト)。references/best_practices_and_troubleshooting.md— ベストプラクティス、よくあるパターン(EDA、出版用の図、複数パネル、時系列)、トラブルシューティング。references/function_reference.md— 関数シグネチャー、パラメーター、使用例の総合リファレンス。references/objects_interface.md— モダンなseaborn.objectsAPI の詳細ガイド。references/examples.md— シナリオ別の実例とコードパターン。