4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonでグラフを作成するツールには、matplotlibseabornplotnineなどがあります。
今回は、seabornを勉強します。
勉強はseabornのチュートリアルを読みながら進めていきました。
実行環境にはGoogle Colaboratoryを用いました。

seabornのインポート

import seaborn as sns

データセットの読み込み

seaborn.load_datasetを用いてデータセットを読み込みます。

tips = sns.load_dataset("tips")

データセットを確認してみます。

tips.head()

スクリーンショット 2023-12-22 20.54.31.png

データの可視化

seaborn.relplot

seaborn.relplotを用いて、2つの変数間の関係を可視化します。
tipsデータセットのtotal_billとtipの関係を可視化します。

sns.relplot(data=tips, x="total_bill", y="tip")

Unknown-4.png

テーマの適用

seaborn.set_themeを用いてテーマを適用します。
以下のコードでは、デフォルトのテーマを適用します。

sns.set_theme()
sns.relplot(data=tips, x="total_bill", y="tip")

Unknown-6.png

以下のコードでは、tickを適用します。

sns.set_theme(style="ticks")
sns.relplot(data=tips, x="total_bill", y="tip")

Unknown-5.png

曜日ごとで色分け

hue="day"を加え、曜日ごとで色分けします。

sns.relplot(data=tips, x="total_bill", y="tip", hue="day")

Unknown-4.png

時間でグラフを分ける

col="time"を加え、時間でグラフを分けます。

sns.relplot(data=tips, x="total_bill", y="tip", hue="day", col="time")

Unknown-5.png

Lunchは木曜日と金曜日が多く、Dinnerは土曜日と日曜日が多いことがわかります。

人数でプロットの大きさを分ける

size="size"を加え、人数でプロットの大きさを分けます。

sns.relplot(data=tips, x="total_bill", y="tip", hue="day", col="time", size="size")

Unknown-6.png

seaborn.lmplot

seaborn.lmplotを用いて、回帰モデルを可視化します。

sns.lmplot(data=tips, x="total_bill", y="tip", hue="day", col="time")

Unknown-7.png

散布図に回帰直線がつきました。

seaborn.displot

seaborn.displotを用いて、ヒストグラムを作成します。

sns.displot(data=tips, x="tip", col="time")

Unknown-4.png

カーネル密度推定の結果をつける

kde=Trueを加え、カーネル密度推定の結果をつけます。

sns.displot(data=tips, x="tip", col="time", kde=True)

Unknown-5.png

LunchとDinnerの分布が異なることがわかります。

ECDFを可視化

kde=Trueを削除し、kind="ecdf"を加え、ECDFを可視化します。
ECDFとは、累積分布関数を推定したものです。

sns.displot(data=tips, x="tip", col="time", kind="ecdf")

Unknown-6.png

カーネル密度推定の結果がついたヒストグラムよりわかりづらいですが、LunchとDinnerの分布が異なることがわかります。

seaborn.catplot

seaborn.catplotを用いて、変数の分布を棒グラフで可視化します。

sns.catplot(data=tips, kind="bar", x="time", y="tip")

Unknown-7.png

tipは、LunchよりDinnerのほうが多い傾向があります。
total_billも見てみます。

sns.catplot(data=tips, kind="bar", x="time", y="total_bill")

Unknown-8.png

total_billも、LunchよりDinnerのほうが多い傾向があります。

バイオリンプロット

kind="violin"に変更し、バイオリンプロットを作成します。

sns.catplot(data=tips, kind="violin", x="time", y="total_bill")

Unknown-9.png

seaborn.jointplot

seaborn.jointplotを用いて、散布図とヒストグラムを可視化します。

sns.jointplot(data=tips, x="total_bill", y="tip")

Unknown-11.png

seabornを用いて、1つのデータセットから様々なグラフを作成できることがわかりました。
勉強を続けて、自由自在にグラフを作成できるようになりたいです。

参考文献

https://seaborn.pydata.org/index.html
https://note.nkmk.me/python-matplotlib-seaborn-basic/
https://qiita.com/s-yonekura/items/dc16ef05aec78322367e

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?