---
title: "PythonのSeabornとは？使い方・グラフの種類・インストールを解説【2026年最新】"
url: "https://www.issoh.co.jp/tech/details/3136/"
published: 2024-07-24
updated: 2026-07-03
categories: ["Python"]
publisher: "株式会社一創"
---

# PythonのSeabornとは？使い方・グラフの種類・インストールを解説【2026年最新】

Seaborn（シーボーン）は、Matplotlibをベースにした高レベルのPython向けデータ可視化ライブラリです。2014年にMichael Waskomが公開し、統計グラフの作成に特化しています。散布図やヒートマップ、分布グラフを**数行のコードで、しかも既定で見栄えよく**描けるのが最大の特徴です。この記事では、Seabornとは何かという定義から、Matplotlibとの違い・pipでのインストール・主要なグラフの作り方までを、最新版0.13.2で動くコードとともに整理します。

## まとめ：Seabornの要点

- **正体**：Matplotlibをラップした統計可視化ライブラリ。低レベルのMatplotlibより短いコードで統計グラフを描ける。
- **読み方**：「シーボーン」。作者はMichael Waskom、初公開は2014年。
- **インストール**：`pip install seaborn` の一行。依存するnumpy・pandas・matplotlibも自動で入る。最新版は0.13.2（対応Python 3.8以上）。
- **使い方の基本**：`import seaborn as sns` で読み込み、`sns.散布図関数(data=df, x=, y=)` の形で呼ぶ。データはpandasのDataFrameで渡す。
- **Matplotlibとの関係**：競合ではなく併用が前提。グラフ本体はSeaborn、タイトルや軸ラベルの微調整はMatplotlibで行う。

以下、それぞれを動くサンプルコードつきで詳しく見ていきます。

## Seabornとは：統計グラフに特化した可視化ライブラリ

Seabornは、Pythonでデータの分布や変数間の関係を視覚化するためのライブラリです。内部でMatplotlibを呼び出す「高レベルAPI」として設計されており、Matplotlibなら十数行かかる統計グラフを1〜2行で書けます。既定で洗練されたカラーテーマとスタイルが適用されるため、設定を書かなくても発表資料に使える見た目になります。

統計的なプロット機能が組み込まれている点が、汎用描画ライブラリとの決定的な違いです。ヒストグラムやカーネル密度推定による分布の可視化、カテゴリごとの集計、回帰直線つき散布図、相関行列のヒートマップなどを、専用の関数一つで呼び出せます。そのため、データを最初に眺めて傾向をつかむ探索的データ解析（EDA）と特に相性が良いライブラリです。データの受け渡しには[Pandasで整えたDataFrame](/tech/details/3123/)を使うのが一般的で、[数値計算ライブラリのNumPy](/tech/details/3124/)と合わせて、データ分析の標準的な組み合わせになっています。

## SeabornとMatplotlibの違いと使い分け

SeabornとMatplotlibは対立するものではなく、役割が異なります。[低レベルで自由度の高いMatplotlib](/tech/details/3125/)がグラフの一つひとつの部品を細かく制御できるのに対し、Seabornはよく使う統計グラフを短いコードで描くことに寄せた高レベルの層です。両者の性格を整理すると次のようになります。

| 観点     | Matplotlib  | Seaborn               |
| ------ | ----------- | --------------------- |
| レベル    | 低レベル（部品を制御） | 高レベル（Matplotlibのラッパー） |
| コード量   | 多い          | 少ない（統計グラフを1行）         |
| 既定の見た目 | 素朴          | 洗練されたテーマ              |
| 統計プロット | 自前で計算       | 分布・回帰・カテゴリを標準搭載       |
| 向く用途   | 任意の図・細かい調整  | EDA・統計可視化             |

実務での使い分けははっきりしています。**グラフ本体はSeabornで描き、タイトル・軸ラベル・凡例の位置といった仕上げはMatplotlibで調整する**のが定番です。Seabornの関数はMatplotlibのAxes上に描画するため、描いた後に`plt.title()` などをそのまま重ねられます。逆に、独自レイアウトの複雑な図や、統計グラフを使わない自由な描画では、無理にSeabornを挟まずMatplotlibを直接使うほうが素直です。

## Seabornのインストールと最初のグラフ

### pipでインストールする

インストールはpipの一行で完了します。SeabornはMatplotlib・pandas・NumPyに依存しますが、これらは同時に自動で導入されるため個別指定は不要です。

```
pip install seaborn
```

最新版は0.13.2（2024年1月リリース、2026年7月時点で最新）で、対応するPythonは3.8以上です。特定バージョンを固定したい場合は `pip install seaborn==0.13.2` のようにバージョンを指定します。プロジェクトごとに環境を分けたいときは仮想環境を作ってからインストールすると、他プロジェクトへの影響を避けられます。[condaとpipのどちらでパッケージを管理するか](/tech/details/7775/)は、既存環境がAnaconda中心かどうかで決めると混乱しません。

### importして最初のグラフを描く

慣例として `import seaborn as sns` と別名snsで読み込みます。Matplotlibも合わせて読み込み、付属のサンプルデータで散布図を描くと、次のように数行で完成します。

```
import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")
sns.set_theme(style="whitegrid")
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="day")
plt.show()
```

テーマの適用は現行版では `sns.set_theme()` を使います（`sns.set()` は同じ働きの旧称エイリアスです）。`load_dataset()` はtipsやiris、flightsなど学習用データを取得する関数で、動作確認やサンプル作成に便利です。初回はサンプルデータをオンラインのリポジトリから取得するため、実行時はインターネット接続が必要です。

## Seabornで作れる主要なグラフの種類

Seabornのグラフは、目的別に「分布・カテゴリを見る」「変数間の関係を見る」「行列・相関を見る」の3系統で捉えると選びやすくなります。ここでは検索でよく探される代表的な関数を、それぞれ動くコードで示します。

### 分布とカテゴリを見る（histplot・countplot・violinplot）

1変数の分布や、カテゴリごとの件数を把握するグラフです。`countplot` はカテゴリの出現回数をそのまま棒グラフにする関数で、曜日別・製品別の件数集計に向きます。

```
import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")
# ヒストグラム（数値の分布）
sns.histplot(data=tips, x="total_bill", bins=20)
plt.show()
# countplot（カテゴリごとの件数）
sns.countplot(data=tips, x="day")
plt.show()
# バイオリンプロット（分布の形＋密度）
sns.violinplot(data=tips, x="day", y="total_bill")
plt.show()
```

ヒストグラムは値がどの範囲に偏っているか、countplotはどのカテゴリが多いか、violinplotは箱ひげ図では見えない分布の山の形まで、それぞれ読み取れます。まず分布を確認してから関係性の分析に進むのがEDAの定石です。

### 変数間の関係を見る（scatterplot・lineplot・pairplot）

2変数の相関や時系列の推移を見る系統です。`lineplot` は時系列の推移、`pairplot` は全変数の組み合わせを一気に散布図化してデータ全体の見取り図を作ります。

```
import seaborn as sns
import matplotlib.pyplot as plt

flights = sns.load_dataset("flights")
# 折れ線グラフ（年ごとの推移）
sns.lineplot(data=flights, x="year", y="passengers")
plt.show()
# ペアプロット（全変数の関係を一覧）
sns.pairplot(sns.load_dataset("iris"), hue="species")
plt.show()
```

なお、flightsデータは同じ年に複数月を含むため、`lineplot` はそれらを自動で平均し、ばらつきを示す信頼区間の帯を一緒に描きます。単純な折れ線だけが欲しい場合は `errorbar=None` を渡すと帯が消えます。pairplotは変数が多いほど一覧性が高く、どの2変数に相関がありそうかの当たりをつけるのに向きます。

### 行列・相関を見る（heatmap）

相関行列やピボット集計を色の濃淡で表すのがヒートマップです。ここで注意したいのが、集計に使うpandasの `pivot` です。現行のpandasでは `pivot` の引数がキーワード専用になっており、`pivot("month", "year", "passengers")` のように位置引数で渡すと `TypeError` になります。**必ず `index=`・`columns=`・`values=` を明示してください**。古い解説記事のコードがそのまま動かない典型例です。

```
import seaborn as sns
import matplotlib.pyplot as plt

flights = sns.load_dataset("flights")
# pivotはキーワード引数で指定する（位置引数はTypeError）
matrix = flights.pivot(index="month", columns="year", values="passengers")
sns.heatmap(matrix, annot=True, fmt="d", cmap="YlGnBu")
plt.show()
```

ヒートマップは、色の濃い箇所に値が集中していることが一目で分かるため、相関の強い変数の組や、季節・時間帯による偏りを見つけるのに向きます。`annot=True` で各セルに数値を重ねられ、`fmt="d"` は整数表示の指定です。Seaborn以外の可視化ライブラリと比較検討したい場合は、インタラクティブ操作に強い[Plotlyによる可視化](/tech/details/7512/)や[Bokehの基本](/tech/details/3371/)も選択肢になります。用途が静的な統計グラフの量産ならSeaborn、Web上での操作を伴うならPlotly/Bokeh、という住み分けが目安です。

## Seabornに関するよくある質問

### Seabornの読み方は？

「シーボーン」と読みます。名称の由来には諸説あり、米ドラマ「ザ・ホワイトハウス（The West Wing）」の登場人物Sam Seabornにちなむという説が知られています。いずれにせよライブラリの機能とは直接関係がないため、統計可視化ライブラリの固有名詞として覚えれば十分です。

### import seaborn as sns の sns とは何ですか？

`sns` はSeabornに付ける別名（エイリアス）で、コード内で `seaborn.scatterplot()` と書く代わりに `sns.scatterplot()` と短く書くための慣例です。公式ドキュメントやサンプルもほぼすべてこの別名を使うため、`import seaborn as sns` と書くのが事実上の標準になっています。

### Seabornの最新バージョンは？pip installで最新版が入りますか？

2026年7月時点の最新版は0.13.2です。`pip install seaborn` はバージョンを指定しなければ最新版を導入します。すでに導入済みの環境を更新するときは `pip install --upgrade seaborn` を実行してください。

### SeabornだけあればMatplotlibは不要ですか？

不要ではありません。SeabornはMatplotlibの上に構築されているため、インストール時にMatplotlibも必要で、グラフ表示の `plt.show()` やタイトル調整でMatplotlibの関数を併用します。役割分担で使うのが前提です。

### 古いSeabornのコードが動かないのはなぜですか？

多くは依存ライブラリ側の仕様変更が原因です。代表例が本文でも触れたpandasの `pivot` のキーワード専用化で、位置引数の古いコードはエラーになります。エラーメッセージに出た関数名で最新の公式ドキュメントを確認し、引数の渡し方を合わせるのが解決の近道です。

## 関連記事

- [Matplotlibとは？Pythonでグラフを描く使い方を入門から実践まで解説](/tech/details/3125/)
- [Python Pandasで何ができるのか？具体的な機能と用途を解説](/tech/details/3123/)
- [NumPyとは？読み方・インストール・基本的な使い方をPythonで解説](/tech/details/3124/)
- [condaとpipの違いから学ぶAnacondaでのパッケージ管理方法](/tech/details/7775/)
- [Plotlyを使ったデータ可視化の基本と最初のグラフ作成手順](/tech/details/7512/)

---

出典: [PythonのSeabornとは？使い方・グラフの種類・インストールを解説【2026年最新】](<https://www.issoh.co.jp/tech/details/3136/>)（株式会社一創）
