LoginSignup
3
4

More than 1 year has passed since last update.

【python初心者】matplotlib、seabornで箱ひげ図を描く

Posted at

いつもわからなくなってしまうのでメモ。

# 必要ライブラリの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())

image.png

基本的な箱ひげ図

matplotlib活用の場合

.boxplotを活用することで、数値列を自動で読み取り、各列の箱ひげ図を作成してくれる。

df_iris.boxplot(patch_artist = True)

image.png

patch_artistは箱の塗りつぶしを設定。デフォルトはFalseで、その場合塗りつぶしなしとなる。

df_iris.boxplot(patch_artist = False)

image.png

横に表示するときはvert=Falseを指定

df_iris.boxplot(vert=False)

image.png

seabornの場合

seabornを使っても同じような結果を得られる

sns.boxplot(data=df_iris)

image.png

グループ分けして箱ひげ図を描く

特定の列を選択し、その列の中でのグループ分けを基準にして箱ひげ図を作成する。
byで列を指定すると、そのグループ分けごとにグラフを作成する。

df_iris.boxplot(by='種別', patch_artist = True)

image.png

seabornでは、xにグループ分けの基準とする列、yに対応する数値の列を指定する

sns.boxplot(x = "種別", y = "がく片長", data = df_iris)

image.png

また、各x軸ごとの分類でさらに要素で分類する場合、元データを変換したうえでseabornを活用する。

w = pd.melt(df_iris, id_vars = ["種別"])
display(w.head())

image.png

sns.boxplot(x = "variable", y = "value", data = w, hue = "種別")

image.png

3
4
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
3
4