1
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?

More than 3 years have passed since last update.

箱ひげ図

Last updated at Posted at 2021-01-27

matplotlib

import matplotlib.pyplot as plt

# yがyesとnoのときのcolumn1データを抽出
# ここでの抽出は y == yes で該当する行が全て取り出されている
y_yes = df[df["y"] == "yes"]
y_no = df[df["y"] == "no"]

# 縦軸をcolumn1で箱ひげ図を書きたい
# yesとnoのデータをまとめる
# 格納先へ = [y_yesのcolumn1の値抽出, y_noのcolumn1の値抽出]
y_column1 = [y_yes["column1"], y_no["column1"]]

# 箱ひげ図の描画
# y_column1に分けて格納したデータに対してboxplotする
plt.boxplot(y_column1)

# x軸(横軸)とy軸(縦軸)のラベルを追加
plt.xlabel("y")
plt.ylabel("column1")

# gca(get current axes)では直前まで作ったaxes部分(今回はboxplotとラベル)をaxに取得する
ax = plt.gca()

# ここまででは、x軸の2つのboxへの分類ラベルは未設定

# 取得しておいたaxにx軸の2つのboxの分類ラベルを追加
# xticklabelsで、x軸の目盛りラベルを設定
plt.setp(ax,xticklabels = ['yes','no'])
plt.show()

download.png

gcaについて

matpltlib内には
用紙としてfigure
キャンバスとしてaxes
枠内に引く線としてline
という階層構造がある。

gca(get current axes)

  1. figure内にplt.boxplot(y_column1)でboxplotが描画される。
  2. axesにboxplotが描画され横軸と縦軸を追加
  3. axesに行なった操作を plt.gca() として ax に取得しておく
  4. x軸の分類ラベルは xticklabels で加筆

今回はこのような流れになっているはず。

seaborn

量的変数の分布

import seaborn as sns

sns.boxplot(y="column3", data=df)

download-1.png

カテゴリー別の量的変数の分布

sns.boxplot(x="y",y="column1", data=df)

# (x,y)=(カテゴリー、量的)

download-2.png

boxの並びの指定

sns.boxplot(x="y",y="column1",order=["yes","no"], data=df)

download-3.png

box内を別の質的変数で分ける


sns.boxplot(x="category2", y="column1", hue="y", data=df)

download-4.png

1
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
1
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?