Skip to content
ํŠœํ† ๋ฆฌ์–ผ
Seaborn
๐Ÿ“Š Seaborn Boxplot ํŠœํ† ๋ฆฌ์–ผ: ํŒŒ์ด์ฌ์—์„œ ์ปค์Šคํ…€ ๋ฐ•์Šค ํ”Œ๋กฏ ๋งŒ๋“ค๊ธฐ

๐Ÿ“Š Seaborn Boxplot ํŠœํ† ๋ฆฌ์–ผ: ํŒŒ์ด์ฌ์—์„œ ์ปค์Šคํ…€ ๋ฐ•์Šค ํ”Œ๋กฏ ๋งŒ๋“ค๊ธฐ

๋ฐ•์Šค ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ์˜ ํ†ต๊ณ„์  ์š”์•ฝ์„ ์ œ๊ณตํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ๊ณผํ•™ ๋ถ„์•ผ์—์„œ ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ณผํ•™ ํ”„๋กœ์ ํŠธ์˜ ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„ (EDA) ๋‹จ๊ณ„์—์„œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ํŒŒ์ด์ฌ์˜ Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ•์Šค ํ”Œ๋กฏ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ์ง‘์ค‘ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Seaborn์€ ํ†ต๊ณ„ ๊ทธ๋ž˜ํ”ฝ ๋ฐ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋กœ ๋ฐ•์Šค ํ”Œ๋กฏ ํ•จ์ˆ˜, Seaborn.boxplot()์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ๊ตฌ๋ฌธ๊ณผ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋งž๊ฒŒ ์ปค์Šคํ…€ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Seaborn์€ matplotlib์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Seaborn์€ ๋งค๋ ฅ์ ์ด๊ณ  ์ •๋ณด์„ฑ์ด ํ’๋ถ€ํ•œ ํ†ต๊ณ„์  ๊ทธ๋ž˜ํ”ฝ์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•œ ๊ณ ์ˆ˜์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Seaborn์˜ ์ฃผ์š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋‹ค์„ฏ ๊ฐ€์ง€ ์š”์•ฝ ์ •๋ณด๋ฅผ ๊ทธ๋ž˜ํ”ฝ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ•์Šค ํ”Œ๋กฏ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. Seaborn.boxplot() ํ•จ์ˆ˜๋Š” ์šฐ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ด๋Ÿฌํ•œ ํ”Œ๋กฏ์„ ์‰ฝ๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์—์„œ ์ฝ”๋“œ ์—†์ด ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”?

PyGWalker๋Š” ์‹œ๊ฐํ™”์™€ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ ํƒ์ƒ‰์  ๋ถ„์„์„ ์œ„ํ•œ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. PyGWalker (opens in a new tab)๋Š” ํŒŒ์ด์ฌ ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ (๋ฐ polars ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„)์„ Tableau ์Šคํƒ€์ผ์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ Jupyter Notebook ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PyGWalker๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” (opens in a new tab)

Seaborn Boxplot์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋‚˜์š”?

Seaborn Boxplot์€ ์‚ฌ๋ถ„์œ„์ˆ˜๋ฅผ ํ†ตํ•ด ์ˆซ์ž ๋ฐ์ดํ„ฐ์˜ ๊ทธ๋ฃน์„ ๊ทธ๋ž˜ํ”ฝ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ฐ•์Šค ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ์˜ ์‹œ๊ฐ์  ์š”์•ฝ์„ ์ œ๊ณตํ•˜๋ฉฐ ๋ฐ•์Šค๋Š” ์‚ฌ๋ถ„์œ„ ๋ฒ”์œ„ (๋ฐ์ดํ„ฐ์˜ ์ค‘๊ฐ„ 50%), ์ƒ์ž ์•ˆ์˜ ์„ ์€ ์ค‘์•™๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์ˆ˜์—ผ์€ ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด์ƒ์น˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ˆ˜์—ผ ์™ธ๋ถ€์— ๊ฐœ๋ณ„ ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ•์Šค ํ”Œ๋กฏ์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์„ธํŠธ ๊ฐ„์˜ ๋ถ„ํฌ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„œ๋กœ ๋‹ค๋ฅธ ๊ต์‹ค๊ฐ„์˜ ์‹œํ—˜ ์ ์ˆ˜ ๋ถ„ํฌ๋‚˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋‹ฌ์˜ ์˜จ๋„ ๋ถ„ํฌ๋ฅผ ๋น„๊ตํ•˜๊ณ ์ž ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Seaborn ๋ฐ•์Šค ํ”Œ๋กฏ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ํ”Œ๋กฏ์„ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ํ•„์š”์— ๋งž๊ฒŒ ์ปค์Šคํ…€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ์—์„œ Seaborn Boxplot ๋งŒ๋“ค๊ธฐ

Seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋จผ์ € seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฝ”๋“œ๋กœ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

import seaborn as sns

๋‹ค์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Seaborn์€ Pandas ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์— ๋กœ๋“œํ•œ ๋‹ค์Œ seaborn ๋ฐ•์Šค ํ”Œ๋กฏ ํ•จ์ˆ˜์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

## ์˜ˆ์‹œ ํŒ ๋ฐ์ดํ„ฐ์…‹ ๋กœ๋“œํ•˜๊ธฐ
tips = sns.load_dataset("tips")
 
## ๋ฐ•์Šค ํ”Œ๋กฏ ์ƒ์„ฑํ•˜๊ธฐ
sns.boxplot(x=tips["total_bill"])

์ด ์˜ˆ์‹œ์—์„œ๋Š” seaborn์˜ ๋‚ด์žฅ๋œ ํŒ ๋ฐ์ดํ„ฐ์…‹์„ ๋กœ๋“œํ•˜๊ณ  ์ด ์ฒญ๊ตฌ์•ก์— ๋Œ€ํ•œ ๋ฐ•์Šค ํ”Œ๋กฏ์„ ์ƒ์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Seaborn Boxplot์˜ ์™ธํ˜• ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

Seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์€ ์™ธํ˜•์„ ๋งŽ์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์™ธํ˜•์„ ๊ฐœ์„ ํ•˜์—ฌ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค:

๋ฐฉํ–ฅ ๋ณ€๊ฒฝํ•˜๊ธฐ

๊ธฐ๋ณธ์ ์œผ๋กœ Seaborn์€ ์ˆ˜์ง ๋ฐ•์Šค ํ”Œ๋กฏ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ x์™€ y ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ต์ฒดํ•˜์—ฌ ์ˆ˜ํ‰ ๋ฐ•์Šค ํ”Œ๋กฏ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

## ์ˆ˜ํ‰ ๋ฐ•์Šค ํ”Œ๋กฏ ์ƒ์„ฑํ•˜๊ธฐ
sns.boxplot(y=tips["total_bill"])

Hue ์ถ”๊ฐ€ํ•˜๊ธฐ

๋ฐ•์Šค ํ”Œ๋กฏ์— hue ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜๋กœ ์ƒ์ž๋ฅผ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ทธ๋ฃน ๊ฐ„์˜ ๋ถ„ํฌ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

## hue๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ฐ•์Šค ํ”Œ๋กฏ ์ƒ์„ฑํ•˜๊ธฐ
sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips)

์ด ์˜ˆ์‹œ์—์„œ๋Š” ๊ฐ ๋‚ ์งœ๋ณ„๋กœ ์ด ์ฒญ๊ตฌ์•ก์— ๋Œ€ํ•œ ๋ฐ•์Šค ํ”Œ๋กฏ์„ ์ƒ์„ฑํ•˜๊ณ  ํก์—ฐ์ž ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋ถ„ํ• ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ์ž ์ƒ‰์ƒ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๊ธฐ

Seaborn์€ ๋ฐ•์Šค ํ”Œ๋กฏ์˜ ์ƒ‰์ƒ์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” boxplot ํ•จ์ˆ˜์˜ palette ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

## ์ƒ‰์ƒ์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•œ ๋ฐ•์Šค ํ”Œ๋กฏ ์ƒ์„ฑํ•˜๊ธฐ
sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set3")

์ด ์˜ˆ์‹œ์—์„œ๋Š” "Set3" ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ•์Šค ํ”Œ๋กฏ์˜ ์ƒ‰์ƒ์„ ์ง€์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์—ผ ๋ณ€๊ฒฝํ•˜๊ธฐ

๊ธฐ๋ณธ์ ์œผ๋กœ seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์˜ ์ˆ˜์—ผ์€ ์ด์ƒ์น˜๋ฅผ ์ œ์™ธํ•œ ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ boxplot ํ•จ์ˆ˜์˜ whis ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋‹ค๋ฅธ ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ์ด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, whis๋ฅผ 0.5๋กœ ์„ค์ •ํ•˜์—ฌ ์ˆ˜์—ผ์ด 5๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜์™€ 95๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

## ์‚ฌ์šฉ์ž ์ •์˜ ์ˆ˜์—ผ์„ ์‚ฌ์šฉํ•œ ๋ฐ•์Šค ํ”Œ๋กฏ ์ƒ์„ฑํ•˜๊ธฐ
sns.boxplot(x="day", y="total_bill", data=tips, whis=0.5)

Seaborn Boxplot vs Violinplot

Seaborn์€ ์ปค๋„ ๋ฐ€๋„ ์ถ”์ •์„ ์ด์šฉํ•œ ๋ฐ•์Šค ํ”Œ๋กฏ๊ณผ ๊ฒฐํ•ฉํ•œ violin plot์ด๋ผ๋Š” ๋˜ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ํ”Œ๋กฏ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Violin plot์€ ๋ฐ์ดํ„ฐ ๊ฐ’์˜ ๋ถ„ํฌ์— ๋Œ€ํ•œ ๋” ์ƒ์„ธํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐ•์Šค ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ์˜ ์š”์•ฝ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ ํƒ์›”ํ•˜์ง€๋งŒ, violin plot์€ ๋ถ„ํฌ์— ๋Œ€ํ•ด ๋” ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ violin plot์€ ํ•ด์„ํ•˜๊ธฐ์— ๋” ๋ณต์žกํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ๋Œ€์ƒ์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋ฐ˜ํ•ด, ๋ฐ•์Šค ํ”Œ๋กฏ์€ ์ง๊ด€์ ์ด๊ณ  ๋„๋ฆฌ ์ดํ•ด๋˜๋ฏ€๋กœ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์ข‹์€ ์„ ํƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ seaborn์—์„œ violin plot์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

## Violin plot ์ƒ์„ฑํ•˜๊ธฐ
sns.violinplot(x="day", y="total_bill", data=tips)

seaborn ๋ฐ•์Šค ํ”Œ๋กฏ ํ•ด์„

seaborn ๋ฐ•์Šค ํ”Œ๋กฏ ํ•ด์„์€ ํ”Œ๋กฏ์˜ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์šด๋ฐ ์ƒ์ž๋Š” ์‚ฌ๋ถ„์œ„ ๋ฒ”์œ„(IQR)๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ, ์ด๋Š” ์ฒซ ๋ฒˆ์งธ ์‚ฌ๋ถ„์œ„์ˆ˜(25๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜)์™€ ์„ธ ๋ฒˆ์งธ ์‚ฌ๋ถ„์œ„์ˆ˜(75๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜) ์‚ฌ์ด์˜ ๋ฒ”์œ„์ž…๋‹ˆ๋‹ค. ์ƒ์ž ๋‚ด๋ถ€์˜ ์„ ์€ ๋ฐ์ดํ„ฐ์˜ ์ค‘์•™๊ฐ’ ๋˜๋Š” 50๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜์ž…๋‹ˆ๋‹ค. Whiskers๋Š” IQR์˜ 1.5๋ฐฐ ์ด๋‚ด์˜ ๋ฐ์ดํ„ฐ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋Š” ์ด์ƒ์น˜๋กœ ๊ฐ„์ฃผ๋˜์–ด ๊ฐœ๋ณ„ ํฌ์ธํŠธ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์„ ํ•ด์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

## ๋ฐ•์Šค ํ”Œ๋กฏ ์ƒ์„ฑ
sns.boxplot(x="day", y="total_bill", data=tips)

์ด ๋ฐ•์Šค ํ”Œ๋กฏ์—์„œ๋Š” ๊ฐ ๋‚ ์งœ๋ณ„ ์ค‘์•™๊ฐ’์ธ ์ด ์ฒญ๊ตฌ์•ก์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์ž๋Š” IQR์„ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ๋งค์ผ ๊ณ ๊ฐ 50%์— ํ•ด๋‹นํ•˜๋Š” ์ด ์ฒญ๊ตฌ์•ก ๋ฒ”์œ„๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Whisker๋Š” IQR์˜ 1.5๋ฐฐ ์ด๋‚ด์˜ ์ด ์ฒญ๊ตฌ์•ก ๋ฒ”์œ„๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ, ์ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋ชจ๋“  ํฌ์ธํŠธ๋Š” ์ด์ƒ์น˜์ž…๋‹ˆ๋‹ค.

seaborn ๋ฐ•์Šค ํ”Œ๋กฏ ์ฃผ์„

seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์—๋Š” ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์„์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ค‘์•™๊ฐ’, ์‚ฌ๋ถ„์œ„์ˆ˜ ๋˜๋Š” ์ด์ƒ์น˜๋ฅผ ํ•ด๋‹น ๊ฐ’์œผ๋กœ ์ฃผ์„์œผ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

## ๋ฐ•์Šค ํ”Œ๋กฏ ์ƒ์„ฑ
ax = sns.boxplot(x="day", y="total_bill", data=tips)
 
## ์ฃผ์„ ์ถ”๊ฐ€
for patch in ax.artists:
    r, g, b, a = patch.get_facecolor()
    patch.set_facecolor((r, g, b, .3))
    x = patch.get_x()
    y = patch.get_y()
    width = patch.get_width()
    height = patch.get_height()
    ax.text(x+width/2, y+height/2, "{:.2f}".format(height), ha='center', va='center')
 
plt.show()

์ด ์˜ˆ์‹œ์—์„œ๋Š” ๊ฐ ์ƒ์ž์˜ ๋†’์ด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ฃผ์„์„ ๋ฐ•์Šค ํ”Œ๋กฏ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋†’์ด๋Š” IQR์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

๊ฒฐ๋ก ์ ์œผ๋กœ, seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ณ  ์ดํ•ดํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ช‡ ์ค„์˜ ์ฝ”๋“œ๋กœ ๋งค๋ ฅ์ ์ด๊ณ  ์œ ์ตํ•œ ๋ฐ•์Šค ํ”Œ๋กฏ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ํƒ์ƒ‰ํ•˜๊ฑฐ๋‚˜ ๋ณด๊ณ ์„œ๋ฅผ ์ค€๋น„ํ•  ๋•Œ seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์€ ํ•„์š”ํ•œ ํ†ต์ฐฐ๋ ฅ์„ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์ด ๋ฌด์—‡์ด๋ฉฐ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋‚˜์š”?

seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ๋ถ„ํฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ทธ๋ž˜ํ”ฝ ๋ฐฉ์‹์œผ๋กœ, ๋ฐ์ดํ„ฐ์˜ ์ค‘์•™๊ฐ’, ์‚ฌ๋ถ„์œ„์ˆ˜ ๋ฐ ์ด์ƒ์น˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ, ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน๊ฐ„์˜ ๋ถ„ํฌ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Python์—์„œ seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์„ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‚˜์š”?

seaborn.boxplot() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Python์—์„œ seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ•์Šค ํ”Œ๋กฏ์˜ ์™ธ๊ด€์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์˜ ์™ธ๊ด€์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

seaborn ๋ฐ•์Šค ํ”Œ๋กฏ์˜ ์™ธ๊ด€์„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉํ–ฅ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ํœด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ƒ‰์ƒ์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๊ณ  Whisker๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์™ธ๊ด€์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์„์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.