いつもわからなくなってしまうのでメモ。
# 必要ライブラリのimport
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# matplotlib日本語化対応
import japanize_matplotlib
#今回はirisを使用
df_iris = sns.load_dataset("iris")
columns_i = ["がく片長","がく片幅","花弁長","花弁幅","種別"]
df_iris.columns = columns_i
display(df_iris.head())
基本的な箱ひげ図
matplotlib活用の場合
.boxplotを活用することで、数値列を自動で読み取り、各列の箱ひげ図を作成してくれる。
df_iris.boxplot(patch_artist = True)
patch_artistは箱の塗りつぶしを設定。デフォルトはFalseで、その場合塗りつぶしなしとなる。
df_iris.boxplot(patch_artist = False)
横に表示するときはvert=Falseを指定
df_iris.boxplot(vert=False)
seabornの場合
seabornを使っても同じような結果を得られる
sns.boxplot(data=df_iris)
グループ分けして箱ひげ図を描く
特定の列を選択し、その列の中でのグループ分けを基準にして箱ひげ図を作成する。
byで列を指定すると、そのグループ分けごとにグラフを作成する。
df_iris.boxplot(by='種別', patch_artist = True)
seabornでは、xにグループ分けの基準とする列、yに対応する数値の列を指定する
sns.boxplot(x = "種別", y = "がく片長", data = df_iris)
また、各x軸ごとの分類でさらに要素で分類する場合、元データを変換したうえでseabornを活用する。
w = pd.melt(df_iris, id_vars = ["種別"])
display(w.head())
sns.boxplot(x = "variable", y = "value", data = w, hue = "種別")