【kaggle】データの視覚化 - プロットタイプとカスタムスタイルの設定【備忘翻訳】

# はじめに
当記事はkaggleのLearnの[Data Visualization](https://www.kaggle.com/learn/data-visualization)の[Choosing Plot Types and Custom Styles](https://www.kaggle.com/code/alexisbcook/choosing-plot-types-and-custom-styles)を翻訳して備忘としたものです。
拙い英語力なので間違い等あればご指摘いただけたらと思います。

まとめ:[【kaggle】翻訳記事まとめ【備忘翻訳】](https://qiita.com/leafeon00000/items/71e57af5b2d9b0b7c846)
前:[【kaggle】データの視覚化 - 分布【備忘翻訳】](https://qiita.com/leafeon00000/private/6b8fc35f21e15beefde7)
次:[【kaggle】特徴量エンジニアリング - 特徴量エンジニアリングとは【備忘翻訳】](https://qiita.com/leafeon00000/private/fcdac31f1e1a22d88d15)

:::note warn
当記事に含まれるコードはkaggle内のnotebook内で正常に動作します。動作を試したい場合はkaggleのnotebookで試してください。
:::

----

# プロットタイプとカスタムスタイルの設定
チャートをカスタマイズして見栄えを良くしましょう。

このコースでは、様々な種類のグラフを作成する方法を学習しました。次に、グラフのスタイルを変更するために使用できる簡単なコマンドを学習する前に知識を整理します。

## 何を学んできましたか？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547651/58dfcedf-9f35-f9e0-12e7-2bfc154163c6.png)

データの背後にあるストーリーを最も効果的に伝える方法を決めるのは必ずしも簡単ではないため、これをサポートするために、グラフの種類を3つの大きなカテゴリに分類しました。

* **トレンド** - トレンドは変化のパターンとして定義されます。
    * `sns.lineplot` - 折れ線グラフは一定期間の傾向を示すのに最適で、複数の線を使用して複数のグループの傾向を示すことができます。
* **関係** - データ内の変数間の関係を理解するために使用できる様々な種類のグラフがあります。
    * `sns.barplot` - **棒グラフ**は、異なるグループに対応する量を比較するのに役立ちます。
    * `sns.heatmap` - **ヒートマップ**を使用すると、数字の表の表で色分けされたパターンを見つけることができます。
    * `sns.scatterplot` - **散布図**は、2つの連続変数間の関係を示します。色分けすると、3番目のカテゴリ変数との関係も表示できます。
    * `sns.regplot` - 散布図に**回帰線**を含めると2つの変数間の線形関係を確認しやすくなります。
    * `sns.lmplot` - このコマンドは、散布図に複数の色分けされたグループが含まれている場合に、複数の回帰線を描画するのに役立ちます。
    * `sns.awarmplot` - **カテゴリ散布図**は、連続変数とカテゴリ変数の関係を示します。
* **分布** - 分布を視覚化して、変数に表示されている可能性がある値と、その可能性を示します。
    * `sns.histplot` - **ヒストグラム**は単一の数値変数の分布を表示します。
    * `sns.kdeplot` - **KED プロット** (または**2D KEDプロット** )は、単一の数値変数(または2つの数値変数)の推定された滑らかな分布を示します。
    * `sns.joinplot` - このコマンドは、2D KEDプロットと、個々の変数に対応するKEDプロットを同時に表示するのに役立ちます。

## seabornでスタイルを変える
全てのコマンドは、各プロットに適切なデフォルトのスタイルを提供します。ただし、プロットの外観をカスタマイズすると便利な場合があります。ありがたいことにこれはコードを1行追加するだけで実現します。

いつものように、コーディング環境の設定から始めます。

<details><summary>setup</summary>

```python
import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
print("Setup Complete")
```

```console:console
Setup Complete
```

</details>

前回のチュートリアルで折れ線グラフを作成する単に使用したのと同じコードを使用します。以下のコードでデータセットを読み込み、グラフを作成します。

```python
# Path of the file to read
spotify_filepath = "../input/spotify.csv"

# Read the file into a variable spotify_data
spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True)

# Line chart 
plt.figure(figsize=(12,6))
sns.lineplot(data=spotify_data)
```

```console:console
<AxesSubplot:xlabel='Date'>
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547651/aecfa7e1-25a4-e4b5-3cbd-a9f9a1f4227e.png)

たった1行のコードで、図のスタイルを別のテーマに簡単に変更できます。

```python
# Change the style of the figure to the "dark" theme
sns.set_style("dark")

# Line chart 
plt.figure(figsize=(12,6))
sns.lineplot(data=spotify_data)
```

```console:console
<AxesSubplot:xlabel='Date'>
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547651/c79dcf6e-1c43-e874-404f-a126a7484093.png)

seabornには5つの異なるテーマ:(1)`"darkgrid"`, (2)`"whitegrid"`, (3)`"dark"`, (4)`"white"`, and (5)`"ticks"`があります。テーマを変更するには上記のコードにあるコマンドと同様にコマンドを使用するだけです。