Pythonデータ可視化に使えるseaborn 25メソッド

Pythonデータ可視化に使えるseabornのメソッド25個を一挙紹介します。また最後に、データ分析の流れを経験できるオススメ学習コンテンツを紹介したので、ご参考ください。

## 必要なライブラリ

```py
import pandas as pd
import seaborn as sns
```

## 利用データ
可視化の具体例のサンプルデータは、下記の2つを使っています。

```py
# https://www.kaggle.com/c/titanic/data?select=train.csv
df_1 = pd.read_csv("train.csv")
```

[![Image from Gyazo](https://i.gyazo.com/ec412736dfbd51c142c4ee0f31998538.png)](https://gyazo.com/ec412736dfbd51c142c4ee0f31998538)

```py
df_2 = sns.load_dataset("flights").pivot("month", "year", "passengers")
```

[![Image from Gyazo](https://i.gyazo.com/6ea89394ee1a979b51af4105711af0e2.png)](https://gyazo.com/6ea89394ee1a979b51af4105711af0e2)

## scatterplot（散布図）

```py
sns.scatterplot(x="Age", y="Fare", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/bc29a667a9618728b8293af335772797.png)](https://gyazo.com/bc29a667a9618728b8293af335772797)

## relplot（scatterplotを複数配置できるグラフ）

```py
sns.relplot(x="Age", y="Fare", hue="Survived", col="Pclass", row="Sex", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/a607a5218a143bbc7c4f34bd77523cc3.png)](https://gyazo.com/a607a5218a143bbc7c4f34bd77523cc3)

## rugplot（軸へのプロット）
単体ではなく、重ねて使うことが多い。

```py
sns.rugplot(x="Age", y="Fare", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/83d53a5a45279a22dfc884e4ed851458.png)](https://gyazo.com/83d53a5a45279a22dfc884e4ed851458)

```py
sns.scatterplot(x="Age", y="Fare", hue="Survived", data=df_1)
sns.rugplot(x="Age", y="Fare", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/30a2c983ccd659848d337a22dd691c61.png)](https://gyazo.com/30a2c983ccd659848d337a22dd691c61)

## stripplot（1変数の散布図）

```py
sns.stripplot(x="Pclass", y="Age", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/2dcb3fbe0e491fa1bf17832147bfa384.png)](https://gyazo.com/2dcb3fbe0e491fa1bf17832147bfa384)

## catplot（stripplotを複数配置できるグラフ）

```py
sns.catplot(x="Pclass", y="Age", hue="Survived", col="Embarked", row="Sex", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/60fa3bef7f4f655f3ac38312f08556a2.png)](https://gyazo.com/60fa3bef7f4f655f3ac38312f08556a2)

## swarmplot（点を重ねない1変数の散布図）

```py
sns.swarmplot(x="Pclass", y="Age", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/ded258cbb67bab5f6167112060ae2b4c.png)](https://gyazo.com/ded258cbb67bab5f6167112060ae2b4c)

## regplot（線形回帰モデルのグラフ）

```py
sns.regplot(x="Age", y="Fare", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/c51c3c871c6b4d6c7d100d5c83e11ba0.png)](https://gyazo.com/c51c3c871c6b4d6c7d100d5c83e11ba0)

## lmplot（regplotを複数配置できるグラフ）

```py
sns.lmplot(x="Age", y="Fare", col="Embarked", row="Survived", hue="Sex", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/f8d2721dfc92cafa625ac013162c8d95.png)](https://gyazo.com/f8d2721dfc92cafa625ac013162c8d95)

## residplot（残差のプロット）
※y=0が線形回帰線で、そこからどのくらい離れているかを示すグラフ

```py
sns.residplot(x="Age", y="Fare", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/f33c6f204b8d7f46793b517f861bae76.png)](https://gyazo.com/f33c6f204b8d7f46793b517f861bae76)

## histplot（ヒストグラム）

```py
sns.histplot(df_1, x="Age", hue="Pclass")
```

[![Image from Gyazo](https://i.gyazo.com/e0ba5c55e1a010b35fe280d7be5019d5.png)](https://gyazo.com/e0ba5c55e1a010b35fe280d7be5019d5)

## displott（histplotを複数配置できるグラフ）

```py
sns.displot(df_1, x="Age", col="Pclass", row="Survived")
```

[![Image from Gyazo](https://i.gyazo.com/f62eef3a6cf3776af4afdd80f0398adf.png)](https://gyazo.com/f62eef3a6cf3776af4afdd80f0398adf)

## distplot（histplotと同じようなもの）

非推奨のため割愛

## ecdfplot（累積分布関数）

```py
sns.ecdfplot(x="Age", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/59d73a630ff335060f3d612de0bf9535.png)](https://gyazo.com/59d73a630ff335060f3d612de0bf9535)

## jointplot（ヒストグラムつき散布図）

```py
sns.jointplot(x="Age", y="Fare", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/c0e97de793cdf434dce781d8d7c1243d.png)](https://gyazo.com/c0e97de793cdf434dce781d8d7c1243d)

## kdeplot（カーネル密度推定を使用した分布）

```py
sns.kdeplot(x="Age", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/4d21205ea774f1d8f8880fdab50344b6.png)](https://gyazo.com/4d21205ea774f1d8f8880fdab50344b6)

## barplot（棒グラフ）

```py
sns.barplot(x="Pclass", y = "Age", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/6027075b32457afba21d755313b5913d.png)](https://gyazo.com/6027075b32457afba21d755313b5913d)

## catplot（barplotを複数配置できるグラフ）

```py
sns.catplot(kind="bar", x="Pclass", y="Age", hue="Survived", col="Embarked", row="Sex", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/cd60359a0595ac4636fab681ff7b6f98.png)](https://gyazo.com/cd60359a0595ac4636fab681ff7b6f98)

## countplot（カテゴリ別のカウントグラフ）

```py
sns.countplot(x="Pclass", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/70cb61c6d9bbb99fa25c1415d0eb1a9a.png)](https://gyazo.com/70cb61c6d9bbb99fa25c1415d0eb1a9a)

## boxplot（箱ひげ図）

```py
sns.boxplot(x="Pclass", y="Age", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/a8123fc5dc46c9340c0f0cc74a647cb8.png)](https://gyazo.com/a8123fc5dc46c9340c0f0cc74a647cb8)

## boxenplot（箱ひげ図の強化版）

```py
sns.boxenplot(x="Pclass", y="Age", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/a9ea29e5d7b27f9e29dce9919bdca87b.png)](https://gyazo.com/a9ea29e5d7b27f9e29dce9919bdca87b)

## violinplot（バイオリン図）

```py
sns.violinplot(x="Pclass", y="Age", hue="Survived", split=True, data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/b8520818414a7f698ecb77a1746acc6c.png)](https://gyazo.com/b8520818414a7f698ecb77a1746acc6c)

## pointplot（平均値と信頼区間のグラフ）

```py
sns.pointplot(x="Pclass", y="Age", hue="Survived", data=df_1)
```

[![Image from Gyazo](https://i.gyazo.com/b7a4e4e8b41e450f3c155b13f438d419.png)](https://gyazo.com/b7a4e4e8b41e450f3c155b13f438d419)

## pairplot（全パターンの相関グラフ）

```py
sns.pairplot(df_1, hue="Survived")
```

[![Image from Gyazo](https://i.gyazo.com/19c229c0ca506cb4cb8bbb98eed25de2.png)](https://gyazo.com/19c229c0ca506cb4cb8bbb98eed25de2)

## lineplot（折れ線グラフ）

```py
sns.lineplot(data=df_2)
```

[![Image from Gyazo](https://i.gyazo.com/59dece09d9263d8904deb1b2722d65c2.png)](https://gyazo.com/59dece09d9263d8904deb1b2722d65c2)

## heatmap（ヒートマップ）

```py
sns.heatmap(df_2, annot=True, fmt='d')
```

[![Image from Gyazo](https://i.gyazo.com/8338d7a10a0a302e212879af40b04d35.png)](https://gyazo.com/8338d7a10a0a302e212879af40b04d35)

## clustermap（クラスターマップ）

```py
sns.clustermap(df_2, annot=True, fmt='d')
```

[![Image from Gyazo](https://i.gyazo.com/f1647e4786795fa385c69b8235ae16fe.png)](https://gyazo.com/f1647e4786795fa385c69b8235ae16fe)

## 【最後に】データ分析手法のコンテンツ（私が制作したもの）

初心者向けのPythonデータ分析学習コンテンツ（私が制作したもの）です。データの取り込み、前処理から可視化の流れを学習できる教材です。考察イメージまで記載されているのでオススメです。一部無料公開されているので、ご興味あればお試しください。

https://www.techpit.jp/courses/30

## 参考サイト
https://seaborn.pydata.org/index.html
https://pythondatascience.plavox.info/