๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Study_note(zb_data)/Python

Box plot์— ๋Œ€ํ•ด์„œ

๐Ÿ“Œ Box plot์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž

์ถœ์ฒ˜ : ์ œ๋กœ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ ์Šค์ฟจ

samples = [1, 7, 9 , 16, 36, 39, 45, 45, 46, 48, 51, 100, 101]
tmp_y = [1]*len(samples)
import matplotlib.pyplot as plt

plt.figure(figsize=(12, 4))
plt.scatter(samples, tmp_y)
plt.grid()
plt.show()

๐Ÿ“Œ Percentile, Median (numpy)

๐Ÿ”ปMedian

import numpy as np
np.median(samples)
>>>>
45.0

๐Ÿ”ปQ1 

# Q1
np.percentile(samples, 25)
>>>
16.0

๐Ÿ”ปQ3

# Q3
np.percentile(samples, 75)
>>>>
48.0

๐Ÿ”ปIQR (Q3 - Q1)

# IQR
np.percentile(samples, 75) - np.percentile(samples, 25)
>>>
32.0

๐Ÿ“Œ Boxplot์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐฑ๋ถ„์œ„์ˆ˜ ํ™•์ธํ•ด๋ณด๊ธฐ

q1 = np.percentile(samples, 25)
q2 = np.median(samples)
q3 = np.percentile(samples, 75)

iqr = q3 - q1

upper_fence = q3 + iqr*1.5
lower_fence = q1 - iqr*1.5
plt.figure(figsize=(12, 4))
plt.scatter(samples,tmp_y)
plt.axvline(x=q1, color='black')
plt.axvline(x=q2, color='red')
plt.axvline(x=q3, color='black')
plt.axvline(x=upper_fence, color='black', ls='dashed')
plt.axvline(x=lower_fence, color='black', ls='dashed')

plt.show()

์ถœ์ฒ˜ : ์ œ๋กœ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ ์Šค์ฟจ