๐Ÿ•ท๏ธ Crawler Inspector

URL Lookup

Direct Parameter Lookup

Raw Queries and Responses

1. Shard Calculation

Query:
Response:
Calculated Shard: 185 (from laksa162)

2. Crawled Status Check

Query:
Response:

3. Robots.txt Check

Query:
Response:

4. Spam/Ban Check

Query:
Response:

5. Seen Status Check

โ„น๏ธ Skipped - page is already crawled

๐Ÿ“„
INDEXABLE
โœ…
CRAWLED
18 hours ago
๐Ÿค–
ROBOTS ALLOWED

Page Info Filters

FilterStatusConditionDetails
HTTP statusPASSdownload_http_code = 200HTTP 200
Age cutoffPASSdownload_stamp > now() - 6 MONTH0 months ago
History dropPASSisNull(history_drop_reason)No drop reason
Spam/banPASSfh_dont_index != 1 AND ml_spam_score = 0ml_spam_score=0
CanonicalPASSmeta_canonical IS NULL OR = '' OR = src_unparsedNot set

Page Details

PropertyValue
URLhttps://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/
Last Crawled2026-04-10 05:25:10 (18 hours ago)
First Indexed2023-01-12 14:46:31 (3 years ago)
HTTP Status Code200
Meta TitleํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ์‹ฌํ™”ํŽธ - Snug Archive
Meta Description์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” ํŒŒ์ด์ฌ์˜ Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๋ณ€์ˆ˜๊ฐ€ 1๊ฐœ์ธ ๋‹จ๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ(univariate data)๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„โ€ฆ
Meta Canonicalnull
Boilerpipe Text
๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Last Updatedย ย  2024-09-10 Publishedย ย  2023-01-12 Python Seaborn 11๋ถ„ ๋ชฉ์ฐจ Seaborn์œผ๋กœ ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•ด๋ณด์ž ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” ํŒŒ์ด์ฌ์˜ Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๋ณ€์ˆ˜๊ฐ€ 1๊ฐœ์ธ ๋‹จ๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ(univariate data)๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๋ณ€์ˆ˜๊ฐ€ 2๊ฐœ์ธ ์ด๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ(bivariate data)์™€ 3๊ฐœ ์ด์ƒ์ธ ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ(multivariate data)๋ฅผ ์‹œ๊ฐํ™”๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Seaborn ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ • ๋ฐฉ๋ฒ•๊ณผ ๊ทธ๋ž˜ํ”„ ์Šคํƒ€์ผ๋ง, 1์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„๋“ค์€ ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ๊ธฐ์ดˆํŽธ ์„ ๋จผ์ € ์ฝ์œผ์‹œ๊ธฐ๋ฅผ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค์ฐจ์› ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(๋ณ‘๋ ฌ): catplot(kind='count') ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(๋‹ค์ค‘, ๋ˆ„์ ): countplot ์š”์•ฝ ํ†ต๊ณ„๊ฐ’ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: barplot ์š”์•ฝ ํ†ต๊ณ„๊ฐ’ ํฌ์ธํŠธ๊ทธ๋ž˜ํ”„: pointplot ์ƒ์ž๊ทธ๋ฆผ: boxplot, boxenplot, violinplot ๋‹ค์ฐจ์› ์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์ ๊ทธ๋ž˜ํ”„(dot plot): stripplot, swarmplot ์„ ๋ถ„๊ทธ๋ž˜ํ”„(rug plot): rugplot ํžˆ์Šคํ† ๊ทธ๋žจ(histogram): histplot ๋ฐ€๋„๊ทธ๋ฆผ(density plot): kdeplot ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜(empirical cumulative distribution function): ecdfplot ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ๊ด€๊ณ„ ์‹œ๊ฐํ™” ์„ ๊ทธ๋ž˜ํ”„(line plot): lineplot ์‚ฐ์ ๋„(scatter plot): scatterplot ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„(joint/marginal distribution plot): jointplot ์‚ฐ์ ๋„ ํ–‰๋ ฌ(scatter plot matrix): pairplot ์ƒ๊ด€ ํ–‰๋ ฌ(correlation matrix): heatmap, clustermap ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„(regression plot): regplot, lmplot, residplot Seaborn ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋กœ๋“œ๋งตย  ์ค€๋น„ ์‹ค์Šต์„ ์œ„ํ•ด์„œ๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(development environments)๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๋ถ€ํ„ฐ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ • ๊ธ€์—์„œ๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์œผ๋กœ ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ(Jupyter notebook)์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์‹œ๊ฐํ™” ์‹ค์Šต์„ ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์„ค์ •๋งŒ ์ ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ณ„ ์ž์„ธํ•œ ์„ค๋ช…์€ Matplotlib ์‚ฌ์šฉ๋ฒ•(์˜ˆ์ •)์„ ์ฐธ์กฐํ•ด ์ฃผ์„ธ์š”. ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ์˜ ์ž์„ธํ•œ ํ™˜๊ฒฝ์„ค์ • ๋ฐฉ๋ฒ•์€ ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ ๋ฅผ ์ฐธ์กฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python import numpy as np import pandas as pd import matplotlib . pyplot as plt from matplotlib import rcParams import seaborn as sns import warnings def setting_styles_basic ( ) : rcParams [ 'font.family' ] = 'Malgun Gothic' rcParams [ 'axes.unicode_minus' ] = False setting_styles_basic ( ) warnings . filterwarnings ( 'ignore' ) ๋‹ค์Œ์œผ๋กœ๋Š” ๊ทธ๋ž˜ํ”„์˜ ์Šค์ผ€์ผ(scale)์„ ์กฐ์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šค์ผ€์ผ ์กฐ์ •์€ sns.set_context ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Seaborn์˜ ๋‹ค์–‘ํ•œ ์Šคํƒ€์ผ๋ง ๋ฐฉ๋ฒ•์€ ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ๊ธฐ์ดˆํŽธ ์˜ ์Šคํƒ€์ผ๋ง ๋ถ€๋ถ„์„ ์ฐธ์กฐํ•ด ์ฃผ์„ธ์š”. ์ฝ”๋“œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๊ทธ๋ž˜ํ”„ ์ „์—ญ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python sns . set_context ( 'paper' , rc = { 'font.size' : 15 , 'xtick.labelsize' : 15 , 'ytick.labelsize' : 15 , 'axes.labelsize' : 15 } ) ์‹ค์Šต์„ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ํ™˜๊ฒฝ ์„ค์ •์„ ๋งˆ์ณค๋‹ค๋ฉด ๋‹ค์Œ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์‹ค์Šต์„ ์œ„ํ•ด์„œ Seaborn์˜ ๋‚ด์žฅ ๋ฐ์ดํ„ฐ๋ฅผ load_dataset() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋กœ๋”ฉํ•ด ์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠน์ • ๋ฐ์ดํ„ฐ์…‹์€ Sklearn(์‚ฌ์ดํ‚ท๋Ÿฐ)์—์„œ ๋ถˆ๋Ÿฌ์™€ pandas์˜ DataFrame์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python df_titanic = sns . load_dataset ( 'titanic' ) df_iris = sns . load_dataset ( 'iris' ) df_penguins = sns . load_dataset ( 'penguins' ) df_tips = sns . load_dataset ( 'tips' ) df_diamonds = sns . load_dataset ( 'diamonds' ) df_planets = sns . load_dataset ( 'planets' ) df_flights = sns . load_dataset ( 'flights' ) from sklearn . datasets import load_wine wine_data = load_wine ( ) df_wines = pd . DataFrame ( data = wine_data . data , columns = wine_data . feature_names ) ๊ทธ๋Ÿผ ์ง€๊ธˆ๋ถ€ํ„ฐ ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋Š” ๋ณ€๋Ÿ‰์ด 2๊ฐœ์ธ ์ด๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ์™€ ๋ณ€๋Ÿ‰์ด 3๊ฐœ ์ด์ƒ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•  ๋•Œ๋Š” ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” hue , ์บ”๋ฒ„์Šค๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” col , ์  ํฌ๊ธฐ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” size ๋“ฑ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ด์šฉํ•ด ์‹œ๊ฐํ™” ์ฐจ์›์„ ๋„“ํ˜€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋‹ค๋ณ€๋Ÿ‰ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ๋ฒ”์ฃผํ˜• ๋‹ค๋ณ€๋Ÿ‰ ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” Seaborn์˜ ๊ทธ๋ž˜ํ”„๋Š” ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(๋ณ‘๋ ฌ, ๋‹ค์ค‘, ๋ˆ„์ )๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 1) ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: countplot() ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(์นด์šดํŠธํ”Œ๋กฏ)์€ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋ณ‘๋ ฌ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” ๋‘ ๋ณ€๋Ÿ‰์— ๋Œ€ํ•œ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ 2๊ฐœ๋ฅผ ๊ฐ๊ฐ์˜ ์บ”๋ฒ„์Šค(canvas)์— ๋ณ‘๋ ฌ๋กœ ๋‚˜์—ดํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด catplot() ํ•จ์ˆ˜์— kind='count' ์™€ col ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. countplot() ํ•จ์ˆ˜๋กœ๋Š” ๋ณ‘๋ ฌ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. python sns . catplot ( x = 'class' , col = 'who' , kind = 'count' , data = df_titanic ) countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ย  ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” countplot() ๋˜๋Š” catplot() ์— hue ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•ด์„œ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. hue ์˜ต์…˜์€ ๋ณ€๋Ÿ‰์„ ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ž…๋‹ˆ๋‹ค. ๋จผ์ € ์ˆ˜์ง ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ถ€ํ„ฐ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ง ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ countplot() ํ•จ์ˆ˜ ๋˜๋Š” caplot() ํ•จ์ˆ˜๋กœ ์ˆ˜์ง ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜์˜ x ํŒŒ๋ผ๋ฏธํ„ฐ์— ๊ฐ€๋กœ์ถ• ๋ฒ”์ฃผ๋กœ ์‚ฌ์šฉํ•  DataFrame์˜ ์—ด ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ , hue ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋‹ค๋ฅธ ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•  DataFrame์˜ ์—ด ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python sns . countplot ( x = 'class' , hue = 'who' , data = df_titanic ) sns . catplot ( x = 'class' , hue = 'who' , kind = 'count' , palette = 'pastel' , edgecolor = '.6' , data = df_titanic ) countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ย  histplot() ํ•จ์ˆ˜์— multiple='dodge' ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. histplot() ํ•จ์ˆ˜๋Š” ์ˆ˜์น˜ํ˜• ์ž๋ฃŒ๋ฅผ ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด์ง€๋งŒ, ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ง‰๋Œ€ ์‚ฌ์ด์— ๊ฐ„๊ฒฉ์„ ์ฃผ๊ณ  x์ถ• ๋ˆˆ๊ธˆ์„ ์—†์• ๋ฉด ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ผ๋ฐ˜ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์ฒ˜๋Ÿผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python ax = sns . histplot ( x = 'sex' , hue = 'survived' , multiple = 'dodge' , shrink = .8 , data = df_titanic ) ax . tick_params ( bottom = False ) histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ย  ์ด๋ฒˆ์—๋Š” ์ˆ˜ํ‰ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ‰ ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜ํ‰ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ๋•Œ ์‚ฌ์šฉํ•œ ํ•จ์ˆ˜์— x ํŒŒ๋ผ๋ฏธํ„ฐ ๋Œ€์‹  y ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. python sns . countplot ( y = 'class' , hue = 'who' , data = df_titanic ) sns . catplot ( y = 'class' , hue = 'who' , kind = 'count' , palette = 'pastel' , edgecolor = '.6' , data = df_titanic ) countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ฐ€๋กœ ๊ทธ๋ฃนํ˜• ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ย  ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ Seaborn์œผ๋กœ ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด histplot() ํ•จ์ˆ˜์— multiple='stack' ์˜ต์…˜์„ ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜์ง ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ python ax = sns . histplot ( x = 'sex' , hue = 'survived' , multiple = 'stack' , shrink = .8 , data = df_titanic ) ax . tick_params ( bottom = False ) histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜์ง ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ย  ์ˆ˜ํ‰ ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜ํ‰ ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด x ํŒŒ๋ผ๋ฏธํ„ฐ ๋Œ€์‹  y ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. python ax = sns . histplot ( y = 'sex' , hue = 'survived' , multiple = 'stack' , shrink = .8 , palette = 'pastel' , data = df_titanic ) ; ax . tick_params ( left = False ) histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜ํ‰ ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ย  2) ์š”์•ฝ ํ†ต๊ณ„๋Ÿ‰ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: barplot() ์š”์•ฝ ํ†ต๊ณ„๋Ÿ‰ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ์— ๋Œ€ํ•œ ์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ƒ˜ํ”Œ๋ง(์›๋ณธ ๋ฐ์ดํ„ฐ์™€ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ์ƒ˜ํ”Œ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ณต์› ์ถ”์ถœ)ํ•˜์—ฌ ์–ป์€ ํ‘œ๋ณธ๋“ค์˜ ํ‰๊ท ๊ณผ ๊ทธ ํ‰๊ท ์˜ ์‹ ๋ขฐ๊ตฌ๊ฐ„(confidence interval)์„ ๋‚˜ํƒ€๋‚ธ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ์‹ ๋ขฐ๊ตฌ๊ฐ„์€ ๋ง‰๋Œ€ ์œ„ ๊ฒ€์ •์ƒ‰ ์˜ค์ฐจ ๋ง‰๋Œ€(error bar)๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์š”์•ฝ ํ†ต๊ณ„๊ฐ’ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด barplot() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. catplot() ํ•จ์ˆ˜์— kind='bar' ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ๋ณต์› ์ƒ˜ํ”Œ๋ง๋œ ํ‘œ๋ณธ๋“ค์˜ ํ‰๊ท ๊ณผ 95% ์‹ ๋ขฐ๊ตฌ๊ฐ„์ด ํ‘œํ˜„๋˜์ง€๋งŒ estimator ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ci ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ฐ๊ฐ ์š”์•ฝ ํ†ต๊ณ„๊ฐ’๊ณผ ์‹ ๋ขฐ๊ตฌ๊ฐ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. estimator: ์ค‘์•™๊ฐ’ np.median , ํ•ฉ๊ณ„ np.sum ๋“ฑ ci: ์‹ ๋ขฐ๊ตฌ๊ฐ„ ์ง€์ •(๊ธฐ๋ณธ๊ฐ’: 95), sd ๋กœ ์„ค์ • ์‹œ ํ‘œ์ค€ํŽธ์ฐจ(standard deviation)๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ, None ์œผ๋กœ ์„ค์ • ์‹œ ์˜ค์ฐจ ๋ง‰๋Œ€ ์ œ๊ฑฐ n_boot: ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ƒ˜ํ”Œ๋ง ํšŸ์ˆ˜(๊ธฐ๋ณธ๊ฐ’: 1000) ๋จผ์ € ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฒ•๋ถ€ํ„ฐ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜์ง ํ‰๊ท  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python sns . barplot ( x = 'day' , y = 'total_bill' , data = df_tips ) sns . catplot ( x = 'day' , y = 'total_bill' , kind = 'bar' , data = df_tips ) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ย  ์ˆ˜ํ‰ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋งŒ์ผ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ์ˆ˜ํ‰์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด barplot() ํ•จ์ˆ˜์— orient='h' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. python sns . barplot ( x = 'total_bill' , y = 'day' , orient = 'h' , data = df_tips ) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ย  ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ barplot() ํ•จ์ˆ˜์— hue ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ง ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋‹ค์Œ์€ ๋ณ€๋Ÿ‰์ด 3๊ฐœ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•˜๋Š” ์˜ˆ์‹œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. python sns . barplot ( x = 'day' , y = 'total_bill' , hue = 'smoker' , data = df_tips ) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ย  ์ˆ˜ํ‰ ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜ํ‰ ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ์œผ๋ฉด orient=h ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. python sns . barplot ( x = 'total_bill' , y = 'day' , hue = 'smoker' , orient = 'h' , data = df_tips ) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ย  ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด barplot() ํ•จ์ˆ˜์— dodge=False ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Seaborn์—์„œ ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” ํ‰๊ท ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ง‰๋Œ€์˜ ์ตœ๋Œ“๊ฐ’ ์œ„์— ๋‹ค๋ฅธ ํ‰๊ท ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ง‰๋Œ€๋ฅผ ์Œ“์•„์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ๋ž˜ํ”„ ์ž์ฒด๋ฅผ ์„œ๋กœ ๊ฒน์ณ์„œ ๊ทธ๋ฆฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค. python sns . barplot ( x = 'day' , y = 'total_bill' , hue = 'smoker' , dodge = False , data = df_tips ) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„1ย  ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” barplot() ํ•จ์ˆ˜๋ฅผ ์—ฐ์ด์–ด ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. python s1 = sns . barplot ( x = 'species' , y = 'sepal_length' , color = 'coral' , ci = None , data = df_iris ) s2 = sns . barplot ( x = 'species' , y = 'petal_length' , color = 'powderblue' , ci = None , data = df_iris ) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„2ย  ์œ„ ๊ทธ๋ž˜ํ”„์—์„œ ๋ง‰๋Œ€์˜ y์ถ•๊ฐ’(์ƒ‰์น ๋œ ๋ถ€๋ถ„)์€ ๊ฐ๊ฐ sepal_length ์˜ ํ‰๊ท ๊ณผ petal_length ์˜ ํ‰๊ท ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 3) ํฌ์ธํŠธ ํ”Œ๋กฏ: pointplot() ํฌ์ธํŠธํ”Œ๋กฏ์€ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์™€ ๋™์ผํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  ํ‰๊ท ๊ฐ’์„ ๋ง‰๋Œ€ ๋Œ€์‹  ์ (point)์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ํฌ์ธํŠธํ”Œ๋กฏ์€ pointplot() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ํฌ์ธํŠธํ”Œ๋กฏ์€ ํ•œ ํ™”๋ฉด์— ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๋น„๊ตํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. python sns . pointplot ( x = 'day' , y = 'total_bill' , data = df_tips ) sns . catplot ( x = 'day' , y = 'total_bill' , kind = 'point' , data = df_tips ) pointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํฌ์ธํŠธ ํ”Œ๋กฏย  ๋งŒ์ผ ์‹ ๋ขฐ๊ตฌ๊ฐ„์ด ์•„๋‹ˆ๋ผ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ci='sd' ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์„ ๊ณผ ํฌ์ธํŠธ๋ฅผ ๋‹ค๋ฅธ ๋ชจ์–‘์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python sns . pointplot ( x = 'class' , y = 'survived' , hue = 'sex' , palette = { 'male' : 'g' , 'female' : 'm' } , markers = [ '^' , 'o' ] , linestyles = [ '-' , '--' ] , data = df_titanic ) ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•œ ํฌ์ธํŠธ ํ”Œ๋กฏย  4) ์ƒ์ž๊ทธ๋ฆผ: boxplot(), boxenplot(), violinplot() ์ƒ์ž๊ทธ๋ฆผ(๋ฐ•์Šคํ”Œ๋กฏ)์€ ๋ฐ์ดํ„ฐ์˜ ๋ถ„์œ„๋ฅผ 5๊ฐ€์ง€ ์š”์•ฝ ์ˆ˜์น˜(five-number summary)๋กœ ์ œ๊ณตํ•˜๋Š” ๋„ํ‘œ์ž…๋‹ˆ๋‹ค. ์ œ3์‚ฌ๋ถ„์œ„์ˆ˜ (Q3): ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘ ์ƒ์œ„ 25%์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’, ๋ฐ•์Šค์˜ ์œ„์ชฝ ๊ฒฝ๊ณ„์„ ์œผ๋กœ ํ‘œ์‹œ ์ œ2์‚ฌ๋ถ„์œ„์ˆ˜ (Q2 ๋˜๋Š” ์ค‘์•™๊ฐ’): ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ 50%์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’(์ค‘์•™๊ฐ’), ๋ฐ•์Šค ๋‚ด๋ถ€์˜ ์„ ์œผ๋กœ ํ‘œ์‹œ ์ œ1์‚ฌ๋ถ„์œ„์ˆ˜ (Q1): ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘ ํ•˜์œ„ 25%์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’, ๋ฐ•์Šค์˜ ์•„๋ž˜์ชฝ ๊ฒฝ๊ณ„์„ ์œผ๋กœ ํ‘œ์‹œ ์‚ฌ๋ถ„์œ„ ๋ฒ”์œ„ (IQR): Q3 - Q1, ๋ฐ•์Šค์˜ ๋†’์ด๋กœ ํ‘œํ˜„ ์ตœ๋Œ“๊ฐ’ (Maximum): ์ด์ƒ์น˜๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ฐ์ดํ„ฐ์…‹์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’, ๋ฐ•์Šคํ”Œ๋กฏ์—์„œ ์œ„์ชฝ ์ˆ˜์—ผ์˜ ๋์ ์œผ๋กœ ํ‘œ์‹œ ์ตœ์†Ÿ๊ฐ’ (Minimum): ์ด์ƒ์น˜๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ฐ์ดํ„ฐ์…‹์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’, ๋ฐ•์Šคํ”Œ๋กฏ์—์„œ ์•„๋ž˜์ชฝ ์ˆ˜์—ผ์˜ ๋์ ์œผ๋กœ ํ‘œ์‹œ ์ด์ƒ์น˜ (Outliers): ์ผ๋ฐ˜์ ์œผ๋กœ Q1 - 1.5IQR ๋ฏธ๋งŒ์ด๊ฑฐ๋‚˜ Q3 + 1.5IQR ์ดˆ๊ณผ์ธ ๊ฐ’๋“ค์„ ๊ฐœ๋ณ„ ์ ์œผ๋กœ ํ‘œ์‹œ ๊ธฐ๋ณธ Seaborn์—์„œ ์ƒ์ž๊ทธ๋ฆผ์„ ๋งŒ๋“ค๋ ค๋ฉด boxplot() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. catplot() ํ•จ์ˆ˜์— 'kind='box'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. python sns . boxplot ( data = df_iris ) sns . catplot ( data = df_iris , kind = 'box' ) boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์ƒ์ž๊ทธ๋ฆผย  ๋งŒ์ผ ์ƒ์ž๊ทธ๋ฆผ์„ ์ˆ˜ํ‰์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด orient='h' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. python sns . boxplot ( data = df_iris , orient = 'h' ) boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผย  3์ฐจ์› ๋ฐ•์Šคํ”Œ๋กฏ์€ hue ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์„œ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. hue ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋”ํ•˜๋ฉด ๋น„์Šทํ•œ ์†์„ฑ์˜ ๋ฐ์ดํ„ฐ๋ผ๋ฆฌ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. python df_tips [ 'weekend' ] = df_tips [ 'day' ] . isin ( [ 'Sat' , 'Sun' ] ) sns . boxplot ( x = 'total_bill' , y = 'day' , hue = 'weekend' , orient = 'h' , dodge = False , data = df_tips ) boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ2ย  ๋ฐ•์Šจ ํ”Œ๋กฏ ๋ฐ•์Šจ ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ„์œ„๋กœ ๋‚˜๋ˆˆ ๋ฐ•์Šคํ”Œ๋กฏ์ž…๋‹ˆ๋‹ค. ๋ฐ•์Šจ ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ์…‹์„ ๋” ๋งŽ์€ ๋ถ„์œ„์ˆ˜(quantiles)๋กœ ๋‚˜๋ˆ„์–ด ๊ธฐ์กด์˜ ์ƒ์ž๊ทธ๋ฆผ๋ณด๋‹ค ์ด์ƒ์น˜(outliers)์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ฐ•์Šจ ํ”Œ๋กฏ์€ ํฐ ๋ฐ์ดํ„ฐ์…‹์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ•์Šจ ํ”Œ๋กฏ์„ ๋งŒ๋“ค๋ ค๋ฉด boxenplot() ์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. catplot() ํ•จ์ˆ˜์— kind='boxen' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. python sns . boxenplot ( x = 'color' , y = 'price' , data = df_diamonds . sort_values ( 'color' ) ) sns . catplot ( x = 'color' , y = 'price' , kind = 'boxen' , data = df_diamonds . sort_values ( 'color' ) ) boxenplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ•์Šจ ํ”Œ๋กฏย  ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ์€ ์ƒ์ž๊ทธ๋ฆผ๊ณผ KDE ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด ์ถ”์ •ํ•œ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜(์ปค๋„๋ฐ€๋„์ถ”์ • ํ•จ์ˆ˜)๋ฅผ ํ•ฉ์นœ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด violinplot() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. catplot() ํ•จ์ˆ˜์— kind='violin' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. python sns . violinplot ( x = 'total_bill' , y = 'day' , data = df_tips ) sns . catplot ( x = 'total_bill' , y = 'day' , kind = 'violin' , data = df_tips ) violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏย  ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด hue ์™€ split=True ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ2ย  5) ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์™ธ์—๋„ ๋ณ€๋Ÿ‰์ด ๋ชจ๋‘ ๋ฒ”์ฃผํ˜•์ธ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ๋•Œ๋Š” ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„(mosaic plot)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„๋Š” ๊ทธ๋ฃน ๋‚ด์˜ ๋ฐ์ดํ„ฐ ๋ฐฑ๋ถ„์œจ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„๋Š” ๋ณ€์ˆ˜๊ฐ€ 3๊ฐœ ์ด์ƒ์ผ ๋•Œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„๋Š” statmodels.graphics.mosaic ํŒจํ‚ค์ง€์˜ mosaic() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python from statsmodels . graphics . mosaicplot import mosaic import matplotlib . pyplot as plt props = lambda key : { 'color' : 'teal' if '1' in key else 'lightgray' } labelizer = lambda k : { ( 'female' , '1' ) : '์—ฌ์„ฑ\n(์ƒ์กด)' , ( 'female' , '0' ) : '์—ฌ์„ฑ\n(์‚ฌ๋ง)' , ( 'male' , '1' ) : '๋‚จ์„ฑ\n(์ƒ์กด)' , ( 'male' , '0' ) : '๋‚จ์„ฑ\n(์‚ฌ๋ง)' } [ k ] mosaic ( df_titanic . sort_values ( 'sex' ) , [ 'sex' , 'survived' ] , properties = props , labelizer = labelizer , axes_label = False ) plt . title ( 'ํƒ€์ดํƒ€๋‹‰ํ˜ธ ์„ฑ๋ณ„ ์ƒ์กด์ž' , fontsize = 17 ) mosaic ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ชจ์ž์ดํฌ ํ”Œ๋กฏย  ์ง€๊ธˆ๊นŒ์ง€ Seaborn์œผ๋กœ ๋‹ค๋ณ€๋Ÿ‰ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋‹ค๋ณ€๋Ÿ‰ ์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ์ˆ˜์น˜ํ˜• 1) ์ ๊ทธ๋ž˜ํ”„: stripplot(), swarmplot() ์ ๊ทธ๋ž˜ํ”„๋Š” ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๋„ํ‘œ์ž…๋‹ˆ๋‹ค. ์ ๊ทธ๋ž˜ํ”„๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ์‹ค์ œ ์œ„์น˜์™€ ๋ถ„ํฌ๋ฅผ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Seaborn์—์„œ ์ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋ณธ ํ•จ์ˆ˜๋Š” stripplot() ์ž…๋‹ˆ๋‹ค. stripplot python sns . stripplot ( data = df_tips ) sns . catplot ( kind = 'strip' , data = df_tips ) stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œย  stripplot() ํ•จ์ˆ˜์— jitter ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ์ผ๋ ฌ๋กœ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. jitter: ์ง€ํ„ฐ(jitter)๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์— ์•ฝ๊ฐ„์˜ ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ, ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์กฐ๊ธˆ์”ฉ ์›€์ง์—ฌ์„œ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋ž˜ํ”„์— ์—ฌ๋Ÿฌ ๋ฒˆ ๊ฒน์ณ์„œ ํ‘œ์‹œ๋˜๋Š” ํ˜„์ƒ์„ ๋ง‰์•„์คŒ python sns . stripplot ( x = 'total_bill' , y = 'smoker' , jitter = False , data = df_tips ) stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ2ย  ๋ฐ์ดํ„ฐํฌ์ธํŠธ๊ฐ€ ์„œ๋กœ ๊ฒน์น˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด dodge=True ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. dodge=True: hue๋กœ ๊ตฌ๋ถ„๋œ ๊ทธ๋ฃน ์‚ฌ์ด ๊ฐ„๊ฒฉ์„ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฒน์น˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ python sns . stripplot ( x = 'tip' , y = 'day' , palette = 'Spectral' , dodge = True , data = df_tips ) stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ3ย  dodge=True ์˜ต์…˜์ฒ˜๋Ÿผ ์ ๊ทธ๋ž˜ํ”„์—์„œ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋“ค์ด ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๊ณ  ์ƒˆ์˜ ๋ฌด๋ฆฌ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ swarmplot() ์ž…๋‹ˆ๋‹ค. swarmplot swarmplot() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ์ ๋„ํ‘œ์˜ ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ๋–ผ(swarm)์ฒ˜๋Ÿผ ๋ฌด๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐํฌ์ธํŠธ๊ฐ€ ์ค‘์ฒฉ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋–ผ ํ”Œ๋กฏ์„ ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋ณธ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python sns . swarmplot ( data = df_tips ) sns . catplot ( kind = 'swarm' , data = df_tips ) swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ์ „์ฒด ๋ณ€์ˆ˜ย  x ์™€ y ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋–ผ ํ”Œ๋กฏ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. python sns . swarmplot ( x = 'day' , y = 'total_bill' , data = df_tips ) sns . catplot ( x = 'day' , y = 'total_bill' , kind = 'swarm' , data = df_tips ) swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ํŠน์ • ๋ณ€์ˆ˜ย  ์‹ค์ œ ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ์ ์ด ์•„๋‹ˆ๋ผ ์„ ๋ถ„(rug)์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. 2) ์„ ๋ถ„๊ทธ๋ž˜ํ”„: rugplot() ์‹ค์ˆ˜ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ์„ ๋ถ„์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด rugplot() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. rugplot() ์€ ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ๊ฐ ์ถ• ์œ„์— ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. python sns . rugplot ( x = 'total_bill' , y = 'tips' , data = 'df_tips' ) rugplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์„ ๋ถ„๊ทธ๋ž˜ํ”„ย  ๋ณดํ†ต ์„ ๋ถ„๊ทธ๋ž˜ํ”„๋Š” ๋‹ค๋ฅธ ๊ทธ๋ž˜ํ”„์™€ ํ•จ๊ป˜ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋ฅผ ๊ฒน์ณ ๊ทธ๋ฆฌ๋ ค๋ฉด ๊ทธ๋ž˜ํ”„ ํ•จ์ˆ˜๋ฅผ ์—ฐ์ด์–ด ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. python sns . scatterplot ( x = 'total_bill' , y = 'tip' , data = df_tips ) sns . rugplot ( x = 'total_bill' , y = 'tip' , data = df_tips ) rugplot() ํ•จ์ˆ˜์™€ scatterplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„ย  3) ํžˆ์Šคํ† ๊ทธ๋žจ: histplot() Seaborn์—์„œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜๋Š” histplot() ์ž…๋‹ˆ๋‹ค. displot() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. Seaborn์—์„œ histplot() ํ•จ์ˆ˜๋กœ ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ(bivariate histogram)์„ ๊ทธ๋ฆด ๋•Œ๋Š” ๋ณ€๋Ÿ‰์„ ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” histplot() ๋Œ€์‹  displot() ์„ ์ด์šฉํ•ด ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ python sns . histplot ( x = 'flipper_length_mm' , hue = 'species' , data = df_penguins ) sns . displot ( x = 'flipper_length_mm' , hue = 'species' , data = df_penguins ) ์˜ต์…˜์„ ์ด์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. hue: ๊ทธ๋ฃน๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ multiple='stack': ๋ˆ„์  ํžˆ์Šคํ† ๊ทธ๋žจ(ํฌ๊ฐœ์ง€ ์•Š๊ณ  ์Œ“๊ธฐ) multiple='dodge': ๋‹ค์ค‘ ํžˆ์Šคํ† ๊ทธ๋žจ python sns . displot ( x = 'flipper_length_mm' , hue = 'species' , element = 'step' , data = df_penguins ) sns . displot ( x = 'flipper_length_mm' , hue = 'species' , multiple = 'stack' , data = df_penguins ) sns . displot ( x = 'flipper_length_mm' , hue = 'sex' , multiple = 'dodge' , data = df_penguins ) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ1ย  python sns . displot ( x = 'bill_length_mm' , y = 'species' , hue = 'species' , legend = False , data = df_penguins ) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ2ย  log_scale=True: x์ถ• ๊ฐ’ ๋กœ๊ทธ ์Šค์ผ€์ผ๋กœ ๋ณ€ํ™˜ element='poly': ๊ทธ๋ž˜ํ”„๋ฅผ ๋ถ„ํฌ๋‹ค๊ฐํ˜•(distribution polygon)์œผ๋กœ ์ง€์ • fill=False: ๊ทธ๋ž˜ํ”„ ์„  ์•„๋ž˜ ์ƒ‰๊น” ์ฑ„์šฐ์ง€ ์•Š๊ธฐ python sns . displot ( x = 'distance' , hue = 'method' , log_scale = True , element = 'poly' , fill = False , data = df_planets ) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ3ย  ํ•œ ์บ”๋ฒ„์Šค ๋‚ด์— ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ  ๊ทธ๋ž˜ํ”„๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ์บ”๋ฒ„์Šค์— ๋‚˜๋ˆ„์–ด์„œ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด col ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. col ์˜ต์…˜์€ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ฐœ๋ณ„ ์บ”๋ฒ„์Šค์— ๋‚˜๋ˆ„์–ด ๊ทธ๋ ค์ค๋‹ˆ๋‹ค. python sns . displot ( x = 'flipper_length_mm' , col = 'sex' , data = df_penguins ) displot ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ4ย  ๋งŒ์ผ ๋‘ ๋ณ€๋Ÿ‰์ด ๋ชจ๋‘ ์ˆ˜์น˜ํ˜•์ด๋ผ๋ฉด ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ํžˆํŠธ๋งต(heatmap) ๊ฐ™์€ ๋ชจ์–‘์„ ๋ ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. binwidth: ์ง์‚ฌ๊ฐํ˜• ํฌ๊ธฐ ์ง€์ • cbar: ์ƒ‰ ์ง‘์ค‘๋„์— ๋”ฐ๋ฅธ ๋นˆ๋„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ปฌ๋Ÿฌ๋ฐ” ์œ ๋ฌด ์ง€์ • hue: ์ƒ‰์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ๊ทธ๋ฃน๋ณ„ ๊ทธ๋ž˜ํ”„ ์„ค์ •(๋ถ„ํฌ ๊ฐ„ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์ด ์ ์–ด์•ผ ํ•จ) python sns . displot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , data = df_penguins ) sns . displot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , binwidth = ( 2 , .5 ) , data = df_penguins ) sns . displot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , cbar = True , data = df_penguins ) sns . displot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , hue = 'species' , data = df_penguins ) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจย  bins: ๋“ฑ๊ธ‰ ์ˆ˜ ์ง€์ •ํ•˜๊ธฐ discrete: x์ถ• ๋ผ๋ฒจ์„ ๋ง‰๋Œ€ ์ค‘๊ฐ„์— ์œ„์น˜์‹œํ‚ค๊ธฐ(True) pthresh: ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ํ•ด๋‹น ๋น„์œจ(0~1)์˜ ์…€ ํˆฌ๋ช… ์ฒ˜๋ฆฌํ•˜๊ธฐ pmax: ํฌํ™”๋„ ์ตœ๋Œ“๊ฐ’(0~1) ์ง€์ •ํ•˜๊ธฐ python sns . displot ( df_planets , x = 'year' , y = 'distance' , bins = 30 , discrete = ( True , False ) , log_scale = ( False , True ) ) sns . displot ( df_planets , x = 'year' , y = 'distance' , bins = 30 , discrete = ( True , False ) , log_scale = ( False , True ) , thresh = None ) sns . displot ( df_planets , x = 'year' , y = 'distance' , bins = 30 , discrete = ( True , False ) , log_scale = ( False , True ) , pthresh = .05 , pmax = .9 ) sns . displot ( df_planets , x = 'year' , y = 'distance' , bins = 30 , discrete = ( True , False ) , log_scale = ( False , True ) , cbar = True , cbar_kws = dict ( shrink = .75 ) ) displot() ํ•จ์ˆ˜์— ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ6ย  ์ง€๊ธˆ๊นŒ์ง€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์˜ต์…˜์„ ์ด์šฉํ•ด ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ทธ๋ ค๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋งŒ์ผ ๊ทธ๋ฃน๋ณ„๋กœ ๊ด€์ธก์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ •๊ทœํ™”(normalization)ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ(data point)๊ฐ€ ๋™์ผํ•œ ์ •๋„์˜ ์Šค์ผ€์ผ(์ค‘์š”๋„)๋กœ ํ•ด์„๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ์˜ ์ค‘์š”๋„๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ด์ƒ์น˜๋ฅผ ์ง€๋‹Œ ํŠน์ • ์†์„ฑ์ด ์ „์ฒด ์†์„ฑ์ฒ˜๋Ÿผ ๋Œ€ํ‘œ๋˜๋Š” ์ผ๋ฐ˜ํ™”์˜ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋ฅผ ๊ฑฐ์นœ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ(normalized histogram)์ด ๋ฉ๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋ฅผ ์œ„ํ•œ ์Šค์ผ€์ผ๋ง ๊ธฐ์ค€์ ์œผ๋กœ๋Š” ์ „์ฒด ๊ด€์ธก์ˆ˜์™€ ๋ฉด์ ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ(์ „์ฒด ๊ด€์ธก์ˆ˜) Seaborn์—์„œ ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๋ฉด histplot() ํ•จ์ˆ˜ ๋˜๋Š” displot() ํ•จ์ˆ˜์— stat='probability' ๋˜๋Š” stat='percent' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. stat ์˜ต์…˜์— probability ์ธ์ž๋ฅผ ์ฃผ๋ฉด y์ถ•์ด ํ™•๋ฅ (probability)์ธ ๊ทธ๋ž˜ํ”„๊ฐ€ ๊ทธ๋ ค์ง‘๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, percent ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด y์ถ•์ด ๋ฐฑ๋ถ„์œจ(percent)์ธ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ์ „์ž์˜ ๊ฒฝ์šฐ ๋ง‰๋Œ€๋“ค์˜ ๋†’์ด๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋ฉด 1์ด ๋˜๊ณ , ํ›„์ž์˜ ๊ฒฝ์šฐ์—๋Š” 100์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์ถ”๊ฐ€๋ฉด ๊ฐ ๋“ฑ๊ธ‰์˜ ๋นˆ๋„์ˆ˜๋ฅผ ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ๋‚˜๋ˆˆ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python sns . histplot ( x = 'flipper_length_mm' , hue = 'species' , stat = 'probability' , data = df_penguins ) sns . histplot ( x = 'flipper_length_mm' , hue = 'species' , stat = 'percent' , data = df_penguins ) ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจย  ์—ฌ๊ธฐ์„œ commont_norm ์˜ต์…˜์„ False ๋กœ ์ง€์ •ํ•˜๋ฉด ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ „์ฒด ๊ด€์ธก์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ๋ณ„ ๊ทธ๋ฃน์˜ ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๋งŒ๋“ค์–ด์ง€๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์„œ๋กœ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. python sns . histplot ( x = 'flipper_length_mm' , hue = 'species' , stat = 'probability' , common_norm = False , data = df_penguins ) sns . histplot ( x = 'flipper_length_mm' , hue = 'species' , stat = 'percent' , common_norm = False , data = df_penguins ) ์ „์ฒด๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”: ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจย  ์ด๋ฒˆ์—๋Š” ์ „์ฒด ๊ด€์ธก์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ(๋ฉด์ ) Seaborn์—์„œ ๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”ํ•œ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๋ฉด stat='density' ์˜ต์…˜์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ฐ ๋“ฑ๊ธ‰์˜ ๋นˆ๋„์ˆ˜๋ฅผ ์ „์ฒด ๊ด€์ธก์น˜์˜ ๊ฐœ์ˆ˜์™€ ๋ง‰๋Œ€ ๋„ˆ๋น„(width)์˜ ๊ณฑ์œผ๋กœ ๋‚˜๋ˆˆ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ์ด ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ y์ถ•์€ ๋ฐ€๋„(density)๊ฐ€ ๋˜๊ณ , ๊ฐ ๋ง‰๋Œ€์˜ ๋„“์ด๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ํ•ฉ์€ 1์ด ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ, ๋…๋ฆฝ์ ์ธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด common_norms=False ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python sns . displot ( df_penguins , x = 'flipper_length_mm' , hue = 'species' , stat = 'density' ) sns . displot ( df_penguins , x = 'flipper_length_mm' , hue = 'species' , stat = 'density' , common_norm = False ) ๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”: ๊ธฐ๋ณธ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ ๋ฐ ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจย  ์ง€๊ธˆ๊นŒ์ง€ Seaborn์—์„œ ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ๊ณผ 2๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์€ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ๋น ๋ฅด๊ณ  ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•œ๊ณ„๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜(Probability Density Function, PDF)๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉด ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ๋“ฑ๊ธ‰์˜ ์ˆ˜๋Š” ์•„๋ฌด๋ฆฌ ๋งŽ๊ฒŒ ์žก์•„๋„ ์œ ํ•œํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋Š” ๋งค๋„๋Ÿฌ์šด ๊ณก์„ ์ธ๋ฐ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋“ฑ๊ธ‰์€ ๋ถˆ์—ฐ์†์ ์ด๋‹ค๋ณด๋‹ˆ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ชจ์–‘๋„ ๊ณ„๋‹จ๊ณผ ๊ฐ™์ด ์šธํ‰๋ถˆํ‰ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ๋Š” ๋“ฑ๊ธ‰์˜ ๊ฐ„๊ฒฉ๊ณผ ๋ฐ์ดํ„ฐ์˜ ์‹œ์ž‘ ์œ„์น˜์— ๋”ฐ๋ผ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ชจ์–‘์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›(dimension)์ด ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ๋ถ„์„ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋ธ์„ ์ถ”์ •ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ํ‘œ๋ณธ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋„ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๋‹จ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋‹จ์ ์„ ๊ฐœ์„ ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ปค๋„๋ฐ€๋„์ถ”์ •(Kernel Density Estimation, KDE)์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ๋Š” ์ปค๋„๋ฐ€๋„์ถ”์ •์ด๋ž€ ๋ฌด์—‡์ธ์ง€ ๊ทธ๋ฆฌ๊ณ  Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด KDE ๊ณก์„ ์„ ๊ทธ๋ฆฌ๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 4) ์ปค๋„๋ฐ€๋„ํ•จ์ˆ˜ ๊ทธ๋ž˜ํ”„: kdeplot() ์ปค๋„๋ฐ€๋„์ถ”์ •์ด๋ž€ ์ปค๋„ ํ•จ์ˆ˜(kernel function)๋ฅผ ์ด์šฉํ•ด์„œ ํ™•๋ฅ ๋ณ€์ˆ˜์˜ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋ฅผ ์ถ”์ •ํ•˜๋Š” ๋น„๋ชจ์ˆ˜์ (non-parametric) ํ†ต๊ณ„ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋น„๋ชจ์ˆ˜์  ๋ฐฉ๋ฒ•์ด๋ž€ ๊ด€์ธก ๋ฐ์ดํ„ฐ๊ฐ€ ํŠน์ • ํ™•๋ฅ ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฅธ๋‹ค๋Š” ์ „์ œ ์—†์ด ์‹ค์‹œํ•˜๋Š” ๊ฒ€์ • ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ปค๋„ ํ•จ์ˆ˜๋ž€ ์›์ ์„ ์ค‘์‹ฌ์œผ๋กœ ๋Œ€์นญ์„ ์ด๋ฃจ๊ณ , ์–‘์˜(non-negative) ์‹ค์ˆ˜(real-valued)๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ ๋ถ„๊ฐ’์ด 1์ธ ํ•จ์ˆ˜( K )๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„ ํ•จ์ˆ˜์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ฐ€์šฐ์‹œ์•ˆ(Gaussian), ์ฝ”์‚ฌ์ธ(cosine), Epanechnikov ํ•จ์ˆ˜ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„ํ•จ์ˆ˜ ์ข…๋ฅ˜ย  ๋ฐ€๋„๊ทธ๋ฆผ(density plot)์€ ์ปค๋„ ์Šค๋ฌด๋”ฉ(kernel smoothing)์„ ์ด์šฉํ•ด ์ถ”์ •ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. KDE์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ปค๋„ ํ•จ์ˆ˜๋กœ ๋Œ€์น˜ํ•˜์—ฌ ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ๋‚˜ํƒ€๋‚ฌ๋˜ ๋“ฑ๊ธ‰์˜ ๋ถˆ์—ฐ์†์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. KDE๋กœ ์ถ”์ •ํ•œ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ๊ณก์„ ์ž…๋‹ˆ๋‹ค. ๋‹จ, KDE ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์กฐ๊ฑด์ด ์žˆ์Šต๋‹ˆ๋‹ค. KDE ๋ฐฉ๋ฒ•์€ ๊ทน๋‹จ๊ฐ’์ด ์—†๋Š” ์—ฐ์† ์ž๋ฃŒ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ๊ณก์„ ์ธ๋ฐ ์ด์ƒ์น˜๊ฐ€ ์žˆ์œผ๋ฉด ํ•ด๋‹น ๊ฐ’์—์„œ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๊ฐ€ ๋พฐ์กฑํ•œ ๋ชจ์–‘์„ ๋ ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด์ƒ์น˜๊ฐ€ ์žˆ๋Š” ์—ฐ์† ์ž๋ฃŒ์—๋Š” KDE ๋ณด๋‹ค๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. Seaborn์—์„œ KDE ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด kdeplot() ์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. displot() ํ•จ์ˆ˜์— kind='kde' ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” displot() ํ•จ์ˆ˜์— kind='kde' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์„œ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. multiple='stack': ๊ทธ๋ž˜ํ”„ ์Œ“์•„์„œ ๊ทธ๋ฆฌ๊ธฐ multiple='fill': ๊ฐ ๊ฐ’์—์„œ ๊ฒน์นœ ๋ถ„ํฌ(stacked distribution) ์ •๊ทœํ™”ํ•ด์„œ ๊ทธ๋ฆฌ๊ธฐ(๋‹จ๋ณ€๋Ÿ‰์ผ ๋•Œ๋งŒ ์œ ํšจ, ๋ชจ๋“  ๊ฐ’์—์„œ y์ถ•์˜ ๋ฐ€๋„๊ฐ€ 1) fill=True: ๊ทธ๋ž˜ํ”„ ๋ถˆํˆฌ๋ช…ํ•˜๊ฒŒ ๊ทธ๋ฆฌ๊ธฐ cumulative=True: ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜ ๊ทธ๋ฆฌ๊ธฐ python sns . displot ( df_penguins , x = 'flipper_length_mm' , kind = 'kde' , hue = 'species' ) sns . displot ( df_penguins , x = 'flipper_length_mm' , kind = 'kde' , hue = 'species' , multiple = 'stack' ) sns . displot ( df_penguins , x = 'flipper_length_mm' , kind = 'kde' , hue = 'species' , multiple = 'fill' ) sns . displot ( df_penguins , x = 'flipper_length_mm' , kind = 'kde' , hue = 'species' , fill = True ) sns . displot ( df_penguins , x = 'flipper_length_mm' , kind = 'kde' , hue = 'species' , cumulative = True , common_norm = False , common_grid = True ) sns . displot ( df_penguins , x = 'flipper_length_mm' , kind = 'kde' , hue = 'species' , fill = True , common_norm = False , palette = 'crest' , alpha = .5 , linewidth = 0 ) kdeplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๋ฐ€๋„๊ทธ๋ฆผย  ์ด๋ณ€๋Ÿ‰ KDE ๊ทธ๋ž˜ํ”„๋Š” ๋“ฑ๊ณ ์„ (contours)์œผ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋“ฑ๊ณ ์„ ์€ ๋ฐ€๋„๊ฐ€ ๊ฐ™์€ ์ง€์ (iso-proportions)์„ ์ด์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. thresh: ๊ฐ€์žฅ ๋‚ฎ์€ ๋ ˆ๋ฒจ์˜ ๋“ฑ๊ณ ์„  ํฌ๊ธฐ ์กฐ์ • levels: ๋“ฑ๊ณ ์„  ๊ฐœ์ˆ˜ ๋˜๋Š” ๋ชจ์–‘ python sns . displot ( df_penguins , x = 'bill_length_mm' , y = 'bill_depth_mm' , kind = 'kde' ) sns . displot ( df_penguins , x = 'bill_length_mm' , y = 'bill_depth_mm' , kind = 'kde' , thresh = .2 , levels = 4 ) sns . displot ( df_penguins , x = 'bill_length_mm' , y = 'bill_depth_mm' , kind = 'kde' , levels = [ .01 , .05 , .1 , .7 ] ) sns . displot ( df_penguins , x = 'bill_length_mm' , y = 'bill_depth_mm' , kind = 'kde' , hue = 'species' ) ๋‹ค์–‘ํ•œ ๋‹ค๋ณ€๋Ÿ‰ KDE ๋“ฑ๊ณ ์„  ๊ทธ๋ž˜ํ”„ย  5) ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜: ecdfplot() ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด ecdfplot() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. displot() ํ•จ์ˆ˜์— `kind='ecdf' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. hue_order: # ์ƒ‰ ์ˆœ์„œ ์ง€์ • complementary=True: ์ƒ๋ณด ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜(complementary cumulative distribution function, CCDF) ๊ทธ๋ฆฌ๊ธฐ python sns . displot ( df_penguins , x = 'flipper_length_mm' , kind = 'ecdf' ) sns . displot ( df_penguins , x = 'flipper_length_mm' , kind = 'ecdf' , hue = 'species' ) sns . displot ( data = df_planets , x = 'distance' , hue = 'method' , hue_order = [ 'Radial Velocity' , 'Transit' ] , log_scale = True , element = 'step' , fill = False , cumulative = True , stat = 'density' , common_norm = False ) sns . ecdfplot ( data = df_penguins , x = 'bill_length_mm' , hue = 'species' , complementary = True ) ecdfplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜ย  ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ: ๊ด€๊ณ„ 1) ์„ ๊ทธ๋ž˜ํ”„: lineplot() ์„ ๊ทธ๋ž˜ํ”„๋Š” ์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ฅธ ์—ฐ์†ํ˜• ๋ณ€์ˆ˜์˜ ๋ณ€๋™์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ์„ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด lineplot() ์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. relplot() ํ•จ์ˆ˜์— kind='line' ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ flights ๋ฐ์ดํ„ฐ์—์„œ ์—ฐ๋ณ„(x์ถ•) ํ‰๊ท  ํƒ‘์Šน๊ฐ ์ˆ˜(y์ถ•)๋ฅผ ํ‘œํ˜„ํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ์Œ์˜์œผ๋กœ ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์€ 95% ์‹ ๋ขฐ๊ตฌ๊ฐ„์ž…๋‹ˆ๋‹ค. python sns . lineplot ( x = 'year' , y = 'passengers' , data = df_flights ) lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„1ย  ์—ฐ๋ณ„(x์ถ•) ์ด ํƒ‘์Šน๊ฐ์ˆ˜(y์ถ•)๋ฅผ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. python sns . lineplot ( x = 'year' , y = 'passengers' , data = df_flights . groupby ( 'year' ) . sum ( ) ) sns . relplot ( x = 'year' , y = 'passengers' , kind = 'line' , data = df_flights . groupby ( 'year' ) . sum ( ) ) lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„2ย  ์›”๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด hue ์™€ style ์˜ต์…˜์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ‰์ƒ๊ณผ ์Šคํƒ€์ผ๋กœ ๊ตฌ๋ถ„ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. python sns . lineplot ( x = 'year' , y = 'passengers' , hue = 'month' , style = 'month' , data = df_flights ) lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„3ย  pandas ์˜ pivot() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋งŒ๋“  ํ‘œ๋ฅผ ์ด์šฉํ•ด๋„ ์œ„ ๊ทธ๋ž˜ํ”„์™€ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pivot() ํ•จ์ˆ˜๋Š” index ์™€ columns ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ „๋‹ฌํ•œ ์†์„ฑ์„ ๊ฐ๊ฐ ํ…Œ์ด๋ธ”์˜ ํ–‰๊ณผ ์—ด๋กœ ์ง€์ •ํ•ด์„œ values ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ „๋‹ฌํ•œ ์ˆ˜์น˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. python flights_pivot = df_flights . pivot ( index = 'month' , columns = 'year' , values = 'passengers' ) flights_pivot pandas์˜ pivot()ํ•จ์ˆ˜๋กœ ๋งŒ๋“  ์—ฐ๋ณ„, ์›”๋ณ„ ํƒ‘์Šน๊ฐ ํ‘œย  2) ์‚ฐ์ ๋„: scatterplot() ์‚ฐ์ ๋„๋Š” ๋‘ ๋ฐ์ดํ„ฐ์˜ ๊ด€๊ณ„๋ฅผ ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ์‚ฐ์ ๋„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด scatterplot() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. relplot() ํ•จ์ˆ˜์— kind='scatter' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. python sns . scatterplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , data = df_penguins ) sns . relplot ( df_penguins [ 'bill_length_mm' ] , df_penguins [ 'bill_depth_mm' ] , kind = 'scatter' ) Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 2์ฐจ์› ์‚ฐ์ ๋„: ๊ธฐ๋ณธย  ์ด๋ฒˆ์—๋Š” 3์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฐ์ ๋„๋กœ ์‹œ๊ฐํ™”ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋„ ์–ธ๊ธ‰ํ–ˆ๋“ฏ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ๋•Œ๋Š” hue , col , size ๋“ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ ์ง€์–ด ์ค„ ์ˆ˜ ์žˆ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‹œ๊ฐํ™”ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. style: ๋งˆ์ปค ๋ชจ์–‘ ์ž๋™ ์ง€์ • markers: ๋งˆ์ปค ๋ชจ์–‘ ์ˆ˜๋™ ์ง€์ • size: ๋งˆ์ปค ํฌ๊ธฐ ์ง€์ • sizes: ๋งˆ์ปค ํฌ๊ธฐ์˜ ๋ฒ”์œ„ ์ง€์ • legend='full': ๋ชจ๋“  ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ hue_norm: ์ƒ‰์ƒ ๋ฒ”์œ„ ์ง€์ • python sns . relplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , hue = 'island' , size = 'island' , col = 'sex' , palette = [ 'gray' , 'steelblue' , 'g' ] , sizes = ( 75 , 200 ) , alpha = .5 , kind = 'scatter' , data = df_penguins ) Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 3์ฐจ์› ์‚ฐ์ ๋„ย  3) ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„: jointplot() ๊ฒฐํ•ฉ๋ถ„ํฌ(joint distribution)์™€ ์ฃผ๋ณ€๋ถ„ํฌ(marginal distribution)๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด jointplot() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. jointplot() ์€ ์ถ• ์ˆ˜์ค€(axes-level) ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. python sns . jointplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , data = df_penguins ) sns . jointplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , hue = 'species' , data = df_penguins ) jointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„ย  jointplot() ํ•จ์ˆ˜์— kind='kde' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‘ ๊ฐœ์˜ ๋ถ„ํฌ๋Š” KDE ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ์˜ˆ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. python sns . jointplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , kind = 'hist' , space = 0 , size = 5 , ratio = 4 , data = df_penguins ) sns . jointplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , kind = 'hex' , space = 0 , size = 5 , ratio = 4 , data = df_penguins ) sns . jointplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , kind = 'reg' , space = 0 , size = 5 , ratio = 4 , data = df_penguins ) sns . jointplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , kind = 'kde' , hue = 'species' , space = 0 , size = 5 , ratio = 4 , data = df_penguins ) jointplot() ํ•จ์ˆ˜์— kind ์˜ต์…˜์„ ๋”ํ•ด ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„ย  ์ด๋ฐ–์—๋„ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์–ด๋–ค ๊ทธ๋ž˜ํ”„๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์„ธ์š”. python sns . jointplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , marker = '+' , s = 100 , marginal_kws = dict ( bins = 25 , fill = False ) , height = 5 , ratio = 2 , marginal_ticks = True , data = df_penguins ) g = sns . jointplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' ) g . plot_joint ( sns . kdeplot , color = 'r' , zorder = 0 , levels = 6 ) g . plot_marginals ( sns . rugplot , color = 'r' , height = - .15 , clip_on = False , data = df_penguins ) jointplot() ํ•จ์ˆ˜์™€ ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„ ๊ฒน์ณ ๊ทธ๋ฆฌ๊ธฐย  ๋” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๊ฒฐํ•ฉ๋ถ„ํฌ ๋ฐ ์ฃผ๋ณ€๋ถ„ํฌ๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€(figure-level) ์ธํ„ฐํŽ˜์ด์Šค์ธ JointGrid ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ JointGrid ๋ฅผ ์ด์šฉํ•ด ํžˆ์Šคํ† ๊ทธ๋žจ๊ณผ ๋ฐ•์Šค๋ถ„ํฌ๋ฅผ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์‹œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. python g = sns . JointGrid ( data = df_penguins , x = 'bill_length_mm' , y = 'bill_depth_mm' ) g . plot_joint ( sns . scatterplot , s = 100 , alpha = .5 , edgecolor = '.2' , linewidth = .5 ) g . plot_marginals ( sns . histplot , kde = True ) g = sns . JointGrid ( data = df_penguins , x = 'bill_length_mm' , y = 'bill_depth_mm' ) g . plot ( sns . regplot , sns . boxplot ) g . refline ( x = 45 , y = 16 ) JointGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„ย  4) ์‚ฐ์ ๋„ ํ–‰๋ ฌ: pairplot() ์‚ฐ์ ๋„ ํ–‰๋ ฌ(scatter plot matrix)์€ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋“ค์˜ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์ด์› ์กฐํ•ฉ์„ ํ–‰๋ ฌ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด pairplot() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ์…‹์˜ ๋ชจ๋“  ์ˆซ์žํ˜• ๋ณ€์ˆ˜ ์Œ์— ๋Œ€ํ•ด ์‚ฐ์ ๋„๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ๋Œ€๊ฐ์„ ์—๋Š” ๊ฐ ๋ณ€์ˆ˜์˜ ๋ถ„ํฌ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์ด๋‚˜ KDE ํ”Œ๋กฏ์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. python sns . pairplot ( df_penguins ) pairplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌย  corner=True ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์‚ฐ์ ๋„ ํ–‰๋ ฌ์˜ ์ ˆ๋ฐ˜๋งŒ ๊ทธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. python sns . pairplot ( df_penguins , corner = True ) ์ ˆ๋ฐ˜ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌย  ์›ํ•˜๋Š” ํŠน์ • ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ด์„œ ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. python sns . pairplot ( df_penguins , x_vars = [ 'bill_length_mm' , 'bill_depth_mm' , 'flipper_length_mm' ] , y_vars = [ 'bill_length_mm' , 'bill_depth_mm' ] ) ํŠน์ • 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌย  python sns . pairplot ( df_penguins , kind = 'hist' , height = 2 ) 2์ฐจ์› ํžˆ์Šคํ† ๊ทธ๋žจ ์‚ฐ์ ๋„ ํ–‰๋ ฌย  python sns . pairplot ( df_penguins , kind = 'kde' ) 2์ฐจ์› kde ์‚ฐ์ ๋„ ํ–‰๋ ฌย  python sns . pairplot ( df_penguins , plot_kws = dict ( marker = '+' , linewidth = 1 ) , diag_kws = dict ( fill = False ) ) ์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1ย  python g = sns . pairplot ( df_penguins , diag_kind = 'kde' ) g . map_lower ( sns . kdeplot , levels = 4 , color = '.2' ) ์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2ย  3์ฐจ์› ์ด์ƒ์˜ ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆฌ๋ ค๋ฉด hue ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. python sns . pairplot ( df_penguins , hue = 'species' , markers = [ 'o' , 's' , 'D' ] , diag_kind = 'hist' ) 3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1ย  python sns . pairplot ( df_penguins , hue = 'species' , size = 2 , aspect = 1.8 , plot_kws = dict ( linewidth = 0.5 , alpha = 0.3 ) , diag_kind = 'kde' , diag_kws = dict ( shade = True ) ) 3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2ย  ๋” ์„ธ๋ฐ€ํ•œ ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€ ์ธํ„ฐํŽ˜์ด์Šค์ธ PairGrid ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. PairGrid ํด๋ž˜์Šค๋กœ๋Š” ๊ทธ๋ฆฌ๊ณ  ์‹ถ์€ ๊ทธ๋ž˜ํ”„๋ฅผ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ kdeplot() ๊ณผ histplot() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ๊ณผ KDE ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. python g = sns . PairGrid ( df_penguins ) g . map_upper ( sns . histplot ) g . map_lower ( sns . kdeplot , fill = True ) g . map_diag ( sns . histplot , kde = True ) PairGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ์‚ฐ์ ๋„ ํ–‰๋ ฌย  5) ์ƒ๊ด€ํ–‰๋ ฌ: heatmap(), clustermap() heatmap ํžˆํŠธ๋งต(heatmap)์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ‰์ƒ์˜ ๊ฐ•๋„๋กœ ํ‘œํ˜„ํ•˜๋Š” 2์ฐจ์› ๊ทธ๋ž˜ํ”ฝ ํ‘œํ˜„ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํžˆํŠธ๋งต์€ ๋ณ€๋Ÿ‰ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด ์ข‹์Šต๋‹ˆ๋‹ค. ํžˆํŠธ๋งต์œผ๋กœ๋Š” ๋‹ค์–‘ํ•œ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ๋Š” ์ƒ๊ด€ํ–‰๋ ฌ์„ ํ‘œํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. python df_wines = df_wines . sample ( frac = 1 , random_state = 7 ) . reset_index ( drop = True ) corr = df_wines . corr ( ) sns . heatmap ( round ( corr , 1 ) , annot = True , fmt = '.1f' , cmap = 'coolwarm' , vmax = 1.0 , vmin = - 1.0 , linecolor = 'white' , linewidths = .05 ) sns . set ( rc = { 'figure.figsize' : ( 10 , 7 ) } ) heatmap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ์ƒ๊ด€ํ–‰๋ ฌ ํžˆํŠธ๋งตย  clustermap ํด๋Ÿฌ์Šคํ„ฐ๋งต(clustermap)์€ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ํžˆํŠธ๋งต๊ณผ ๊ณ„์ธต์  ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ๊ฒฐํ•ฉํ•œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋งต์„ ๊ทธ๋ฆฌ๋ ค๋ฉด clustermap() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. clustermap() ํ•จ์ˆ˜์—๋Š” heatmap() ํ•จ์ˆ˜์™€ ๋‹ฌ๋ฆฌ standard_sacle ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ์–ด ํด๋Ÿฌ์Šคํ„ฐ๋งต์˜ ๋ฒ”์œ„๋ฅผ 0~1๋กœ ์ •๊ทœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. python corr = df_wines . corr ( ) sns . clustermap ( corr , cmap = 'coolwarm' , standard_scale = 1 ) clustermap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ƒ๊ด€ํ–‰๋ ฌ ํด๋Ÿฌ์Šคํ„ฐ๋งตย  6) ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ Seaborn์œผ๋กœ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด regplot() ๋˜๋Š” lmplot() ์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋จผ์ € regplot() ์‚ฌ์šฉ๋ฒ•๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. regplot regplot() ํ•จ์ˆ˜๋Š” ์‚ฐ์ ๋„์™€ ์„ ํ˜• ํšŒ๊ท€์„ (linear regression line)์„ ํ•จ๊ป˜ ๊ทธ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์„ ํ˜• ํšŒ๊ท€์„  ์ฃผ๋ณ€ ์Œ์˜์€ ์‹ ๋ขฐ๊ตฌ๊ฐ„(95%)์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. python sns . regplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , data = df_penguins ) regplot()์œผ๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ย  ์—ฌ๊ธฐ์— lowess=True ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ํšŒ๊ท€์„ ์„ ์„ ํ˜•์ด ์•„๋‹ˆ๋ผ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์— ๊ฐ€์ค‘์น˜๋ฅผ ๋†’์ด๋Š” ๊ตญ์†Œ ํšŒ๊ท€(local regression) ๊ธฐ๋ฒ•์œผ๋กœ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. lowess ๋Š” locally weighted robust scatterplot smoothing ์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. python sns . regplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , lowess = True , data = df_penguins ) ๊ตญ์†Œ ํšŒ๊ท€ ๊ธฐ๋ฒ•์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ย  scatter_kws: ์  ์ƒ‰์ƒ(facecolor, fc), ์  ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ(edgecolor, ec), ํฌ๊ธฐ(size, s), ํˆฌ๋ช…๋„ ์ง€์ • color: ์„  ์ƒ‰์ƒ ์ง€์ • line_kws: ์„  ๊ตต๊ธฐ(linewidth, lw), ์„  ์Šคํƒ€์ผ(line style, ls), ํˆฌ๋ช…๋„ ์ง€์ • ci: ์‹ ๋ขฐ๊ตฌ๊ฐ„ ์ง€์ •(๊ธฐ๋ณธ๊ฐ’: 95) python sns . regplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , scatter_kws = { 'fc' : 'gray' , 'ec' : 'gray' , 's' : 50 , 'alpha' : 0.3 } , color = 'r' , line_kws = { 'lw' : 1.5 , 'ls' : '--' , 'alpha' : 0.5 } , ci = 90 , data = df_penguins ) ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ย  lmplot lmplot() ์—ญ์‹œ regplot() ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, lmplot() ์€ ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€(figure-level) ํ•จ์ˆ˜๋กœ FacetGrid ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. lmplot() ์€ ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€ ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— regplot() ์—์„œ์™€ ๋‹ฌ๋ฆฌ hue ๋˜๋Š” col ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. python sns . lmplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , hue = 'species' , data = df_penguins ) sns . lmplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , col = 'species' , data = df_penguins ) lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„1ย  ์ „์ฒด ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ๋ฐฐ๊ฒฝ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. truncate=False: ํšŒ๊ท€์„  x์ถ• ๋๊นŒ์ง€ ํ‘œํ˜„ํ•˜์ง€ ์•Š๊ธฐ facet_kws=dict(sharex=False, sharey=False): x์ถ•, y์ถ• ๊ณต์œ ํ•˜์ง€ ์•Š๊ธฐ line_kws: ํšŒ๊ท€์„  ์Šคํƒ€์ผ ์ง€์ •ํ•˜๊ธฐ scatter_kws: ์‚ฐ์ ๋„ ์  ์Šคํƒ€์ผ ์ง€์ •ํ•˜๊ธฐ python g = sns . lmplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , col = 'species' , row = 'sex' , height = 4 , truncate = False , line_kws = { 'color' : 'steelblue' , 'linestyle' : '--' } , data = df_penguins ) axes = g . axes for ax in axes . ravel ( ) : sns . regplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , fit_reg = False , scatter_kws = { 'fc' : 'gray' , 'ec' : 'none' , 's' : 30 , 'alpha' : 0.3 } , ax = ax , data = df_penguins ) lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„2ย  residplot resideplot() ์€ ์‹ค์ œ ๋ฐ์ดํ„ฐํฌ์ธํŠธ์™€ ํšŒ๊ท€์„ ๊ณผ์˜ ์ž”์ฐจ(residuals)๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. python sns . residplot ( x = 'bill_length_mm' , y = 'bill_depth_mm' , lowess = True , data = df_penguins ) resideplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ž”์ฐจ ๊ทธ๋ž˜ํ”„ย  ์ง€๊ธˆ๊นŒ์ง€ Seaborn์œผ๋กœ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ์ˆ˜๊ณ  ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ  ๋ฌธํ—Œ [1] ๋‹คํฌํ”„๋กœ๊ทธ๋ž˜๋จธ, ๏ฝขKernel Density Estimation(์ปค๋„๋ฐ€๋„์ถ”์ •)์— ๋Œ€ํ•œ ์ดํ•ด๏ฝฃ, ๋‹คํฌํ”„๋กœ๊ทธ๋ž˜๋จธ, " https://darkpgmr.tistory.com/147 " [2] ์ด์ œํ˜„, ๏ฝขseaborn regplot vs lmplot๏ฝฃ, Pega Devlog, " https://jehyunlee.github.io/2022/06/06/Python-DS-103-snsreglmplot/ " [3] Dipanjan (DJ) Sarkar, ๏ฝขThe Art of Effective Visualization of Multi-dimensional Data๏ฝฃ, Towards Data Science, " https://towardsdatascience.com/the-art-of-effective-visualization-of-multi-dimensional-data-6c7202990c57 " [4] Rfriend, ๏ฝข[Python] ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„ (Mosaic Chart)๏ฝฃ, Rfriend, " https://rfriend.tistory.com/418 " [5] Seaborn, ๏ฝขseaborn.histplot๏ฝฃ, Seaborn, " https://seaborn.pydata.org/generated/seaborn.histplot.html " [6] Seaborn, ๏ฝขseaborn.jointplot๏ฝฃ, Seaborn, " https://seaborn.pydata.org/generated/seaborn.jointplot.html " [7] Seaborn, ๏ฝขseaborn.pairplot๏ฝฃ, Seaborn, " https://seaborn.pydata.org/generated/seaborn.pairplot.html " [8] Statsmodels, ๏ฝขstatsmodels.graphics.mosaicplot.mosaic๏ฝฃ, Statsmodels, " https://www.statsmodels.org/dev/generated/statsmodels.graphics.mosaicplot.mosaic.html " ์ด์ „ ๊ธ€ ๋‹ค์Œ ๊ธ€
Markdown
[![snugarchive logo](https://www.snugarchive.com/static/logo-a1dafce07d59c15244126c7d39541645.png)](https://www.snugarchive.com/) - [ํ™ˆ](https://www.snugarchive.com/) - [๊ธ€](https://www.snugarchive.com/blog/posts/) - [ํ”„๋กœ์ ํŠธ](https://www.snugarchive.com/blog/projects/) - [๋ฌธ์˜](https://www.snugarchive.com/contact/) - [ํƒœ๊ทธ](https://www.snugarchive.com/tags/) - [ํ™ˆ](https://www.snugarchive.com/) - [๊ธ€](https://www.snugarchive.com/blog/posts/) - [์ปดํ“จํ„ฐ ๊ณผํ•™](https://www.snugarchive.com/blog/category/computer-science/) - [๋ฐ์ดํ„ฐ ๊ณผํ•™](https://www.snugarchive.com/blog/category/data-science/) - [ํ™˜๊ฒฝ ์„ค์ •](https://www.snugarchive.com/blog/category/environment-setup/) - [์ˆ˜ํ•™](https://www.snugarchive.com/blog/category/mathematics/) - [์ž์—ฐ์–ด](https://www.snugarchive.com/blog/category/natural-language/) - [ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด](https://www.snugarchive.com/blog/category/programming-language/) - [์›น ๊ฐœ๋ฐœ](https://www.snugarchive.com/blog/category/web-development/) - [ํ”„๋กœ์ ํŠธ](https://www.snugarchive.com/blog/projects/) - [๋ฌธ์˜](https://www.snugarchive.com/contact/) - [ํƒœ๊ทธ](https://www.snugarchive.com/tags/) [๋ฐ์ดํ„ฐ ๊ณผํ•™](https://www.snugarchive.com/blog/category/data-science/)[๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”](https://www.snugarchive.com/blog/category/data-science/visualization/) # ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ์‹ฌํ™”ํŽธ ## ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Last Updated 2024-09-10 Published 2023-01-12 - [Python Seaborn](https://www.snugarchive.com/tag/python-seaborn/) 11๋ถ„ #### ๋ชฉ์ฐจ 1. [์ค€๋น„](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EC%A4%80%EB%B9%84) - [๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ •](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EA%B8%B0%EB%B3%B8-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95) - [๋ฐ์ดํ„ฐ](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EB%8D%B0%EC%9D%B4%ED%84%B0) 2. [๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ๋ฒ”์ฃผํ˜•](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EB%8B%A4%EC%B0%A8%EC%9B%90-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8B%9C%EA%B0%81%ED%99%94-%EB%B2%94%EC%A3%BC%ED%98%95) - [1\) ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: countplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#1-%EB%B9%88%EB%8F%84-%EB%A7%89%EB%8C%80%EA%B7%B8%EB%9E%98%ED%94%84-countplot) - [2\) ์š”์•ฝ ํ†ต๊ณ„๋Ÿ‰ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: barplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#2-%EC%9A%94%EC%95%BD-%ED%86%B5%EA%B3%84%EB%9F%89-%EB%A7%89%EB%8C%80%EA%B7%B8%EB%9E%98%ED%94%84-barplot) - [3\) ํฌ์ธํŠธ ํ”Œ๋กฏ: pointplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#3-%ED%8F%AC%EC%9D%B8%ED%8A%B8-%ED%94%8C%EB%A1%AF-pointplot) - [4\) ์ƒ์ž๊ทธ๋ฆผ: boxplot(), boxenplot(), violinplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#4-%EC%83%81%EC%9E%90%EA%B7%B8%EB%A6%BC-boxplot-boxenplot-violinplot) - [5\) ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#5-%EB%AA%A8%EC%9E%90%EC%9D%B4%ED%81%AC-%EA%B7%B8%EB%9E%98%ED%94%84) 3. [๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ์ˆ˜์น˜ํ˜•](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EB%8B%A4%EC%B0%A8%EC%9B%90-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8B%9C%EA%B0%81%ED%99%94-%EC%88%98%EC%B9%98%ED%98%95) - [1\) ์ ๊ทธ๋ž˜ํ”„: stripplot(), swarmplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#1-%EC%A0%90%EA%B7%B8%EB%9E%98%ED%94%84-stripplot-swarmplot) - [2\) ์„ ๋ถ„๊ทธ๋ž˜ํ”„: rugplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#2-%EC%84%A0%EB%B6%84%EA%B7%B8%EB%9E%98%ED%94%84-rugplot) - [3\) ํžˆ์Šคํ† ๊ทธ๋žจ: histplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#3-%ED%9E%88%EC%8A%A4%ED%86%A0%EA%B7%B8%EB%9E%A8-histplot) - [4\) ์ปค๋„๋ฐ€๋„ํ•จ์ˆ˜ ๊ทธ๋ž˜ํ”„: kdeplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#4-%EC%BB%A4%EB%84%90%EB%B0%80%EB%8F%84%ED%95%A8%EC%88%98-%EA%B7%B8%EB%9E%98%ED%94%84-kdeplot) - [5\) ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜: ecdfplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#5-%EA%B2%BD%ED%97%98%EC%A0%81-%EB%88%84%EC%A0%81%EB%B6%84%ED%8F%AC%ED%95%A8%EC%88%98-ecdfplot) 4. [๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ: ๊ด€๊ณ„](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EB%8B%A4%EC%B0%A8%EC%9B%90-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B4%80%EA%B3%84) - [1\) ์„ ๊ทธ๋ž˜ํ”„: lineplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#1-%EC%84%A0%EA%B7%B8%EB%9E%98%ED%94%84-lineplot) - [2\) ์‚ฐ์ ๋„: scatterplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#2-%EC%82%B0%EC%A0%90%EB%8F%84-scatterplot) - [3\) ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„: jointplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#3-%EA%B2%B0%ED%95%A9%EC%A3%BC%EB%B3%80%EB%B6%84%ED%8F%AC%EB%8F%84-jointplot) - [4\) ์‚ฐ์ ๋„ ํ–‰๋ ฌ: pairplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#4-%EC%82%B0%EC%A0%90%EB%8F%84-%ED%96%89%EB%A0%AC-pairplot) - [5\) ์ƒ๊ด€ํ–‰๋ ฌ: heatmap(), clustermap()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#5-%EC%83%81%EA%B4%80%ED%96%89%EB%A0%AC-heatmap-clustermap) - [6\) ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#6-%ED%9A%8C%EA%B7%80-%EA%B7%B8%EB%9E%98%ED%94%84) 5. [์ฐธ๊ณ  ๋ฌธํ—Œ](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EC%B0%B8%EA%B3%A0-%EB%AC%B8%ED%97%8C) ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='900'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABAABBf/EABQBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAeyVY0H2xX//xAAaEAACAgMAAAAAAAAAAAAAAAABAgAxAxEh/9oACAEBAAEFAmMS1phzGNMJ/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8BZ//EABURAQEAAAAAAAAAAAAAAAAAAAIQ/9oACAECAQE/ATP/xAAXEAADAQAAAAAAAAAAAAAAAAAAARBR/9oACAEBAAY/AnMGKf/EABsQAAMBAAMBAAAAAAAAAAAAAAABESExUWFx/9oACAEBAAE/IapOI4PmNtx4zw+CcJpo+mJFh//aAAwDAQACAAMAAAAQLP8A/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQAhMf/aAAgBAwEBPxDsgy//xAAWEQEBAQAAAAAAAAAAAAAAAAAAATH/2gAIAQIBAT8QxVf/xAAaEAACAwEBAAAAAAAAAAAAAAABEQAhYTFB/9oACAEBAAE/EL48R92CJaENRqArDgXAcQbLZuFWk+DyDGGRuy5//9k=) ![ํŒŒ์ด์ฌ Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋กœ๋“œ๋งต](https://www.snugarchive.com/static/cc6bde51dc6e6bff10ac274aecf99abb/93fdb/featured-image-seaborn-multivariate.jpg) ![ํŒŒ์ด์ฌ Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋กœ๋“œ๋งต](https://www.snugarchive.com/static/cc6bde51dc6e6bff10ac274aecf99abb/93fdb/featured-image-seaborn-multivariate.jpg) Seaborn์œผ๋กœ ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•ด๋ณด์ž [Snug Archive](https://www.snugarchive.com/) ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” ํŒŒ์ด์ฌ์˜ Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๋ณ€์ˆ˜๊ฐ€ 1๊ฐœ์ธ ๋‹จ๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ(univariate data)๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๋ณ€์ˆ˜๊ฐ€ 2๊ฐœ์ธ ์ด๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ(bivariate data)์™€ 3๊ฐœ ์ด์ƒ์ธ ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ(multivariate data)๋ฅผ ์‹œ๊ฐํ™”๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Seaborn ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ • ๋ฐฉ๋ฒ•๊ณผ ๊ทธ๋ž˜ํ”„ ์Šคํƒ€์ผ๋ง, 1์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„๋“ค์€ [ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ๊ธฐ์ดˆํŽธ](https://www.snugarchive.com/blog/python-data-visualization-seaborn-basic/)์„ ๋จผ์ € ์ฝ์œผ์‹œ๊ธฐ๋ฅผ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1. ๋‹ค์ฐจ์› ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” > - ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(๋ณ‘๋ ฌ): catplot(kind='count') > - ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(๋‹ค์ค‘, ๋ˆ„์ ): countplot > - ์š”์•ฝ ํ†ต๊ณ„๊ฐ’ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: barplot > - ์š”์•ฝ ํ†ต๊ณ„๊ฐ’ ํฌ์ธํŠธ๊ทธ๋ž˜ํ”„: pointplot > - ์ƒ์ž๊ทธ๋ฆผ: boxplot, boxenplot, violinplot 1. ๋‹ค์ฐจ์› ์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” > - ์ ๊ทธ๋ž˜ํ”„(dot plot): stripplot, swarmplot > - ์„ ๋ถ„๊ทธ๋ž˜ํ”„(rug plot): rugplot > - ํžˆ์Šคํ† ๊ทธ๋žจ(histogram): histplot > - ๋ฐ€๋„๊ทธ๋ฆผ(density plot): kdeplot > - ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜(empirical cumulative distribution function): ecdfplot 1. ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ๊ด€๊ณ„ ์‹œ๊ฐํ™” > - ์„ ๊ทธ๋ž˜ํ”„(line plot): lineplot > - ์‚ฐ์ ๋„(scatter plot): scatterplot > - ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„(joint/marginal distribution plot): jointplot > - ์‚ฐ์ ๋„ ํ–‰๋ ฌ(scatter plot matrix): pairplot > - ์ƒ๊ด€ ํ–‰๋ ฌ(correlation matrix): heatmap, clustermap > - ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„(regression plot): regplot, lmplot, residplot ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='900'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABAABBf/EABQBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAeyVY0H2xX//xAAaEAACAgMAAAAAAAAAAAAAAAABAgAxAxEh/9oACAEBAAEFAmMS1phzGNMJ/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8BZ//EABURAQEAAAAAAAAAAAAAAAAAAAIQ/9oACAECAQE/ATP/xAAXEAADAQAAAAAAAAAAAAAAAAAAARBR/9oACAEBAAY/AnMGKf/EABsQAAMBAAMBAAAAAAAAAAAAAAABESExUWFx/9oACAEBAAE/IapOI4PmNtx4zw+CcJpo+mJFh//aAAwDAQACAAMAAAAQLP8A/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQAhMf/aAAgBAwEBPxDsgy//xAAWEQEBAQAAAAAAAAAAAAAAAAAAATH/2gAIAQIBAT8QxVf/xAAaEAACAwEBAAAAAAAAAAAAAAABEQAhYTFB/9oACAEBAAE/EL48R92CJaENRqArDgXAcQbLZuFWk+DyDGGRuy5//9k=) ![Seaborn ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋กœ๋“œ๋งต](https://www.snugarchive.com/static/cc6bde51dc6e6bff10ac274aecf99abb/93fdb/featured-image-seaborn-multivariate.jpg) ![Seaborn ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋กœ๋“œ๋งต](https://www.snugarchive.com/static/cc6bde51dc6e6bff10ac274aecf99abb/93fdb/featured-image-seaborn-multivariate.jpg) Seaborn ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋กœ๋“œ๋งต ## ์ค€๋น„ ์‹ค์Šต์„ ์œ„ํ•ด์„œ๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(development environments)๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๋ถ€ํ„ฐ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ### ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ • ๊ธ€์—์„œ๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์œผ๋กœ ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ(Jupyter notebook)์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์‹œ๊ฐํ™” ์‹ค์Šต์„ ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์„ค์ •๋งŒ ์ ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ณ„ ์ž์„ธํ•œ ์„ค๋ช…์€ Matplotlib ์‚ฌ์šฉ๋ฒ•(์˜ˆ์ •)์„ ์ฐธ์กฐํ•ด ์ฃผ์„ธ์š”. ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ์˜ ์ž์„ธํ•œ ํ™˜๊ฒฝ์„ค์ • ๋ฐฉ๋ฒ•์€ [์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/blog/jupyter-notebook-setup/)๋ฅผ ์ฐธ์กฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` python# ํŒจํ‚ค์ง€ ์ž„ํฌํŠธimport numpy as np # Numpy(๋„˜ํŒŒ์ด) ํŒจํ‚ค์ง€ ์ž„ํฌํŠธimport pandas as pd # pandas(ํŒ๋‹ค์Šค) ํŒจํ‚ค์ง€ ์ž„ํฌํŠธimport matplotlib.pyplot as plt # Matplotlib(๋งทํ”Œ๋กฏ๋ฆฝ) ํŒจํ‚ค์ง€์˜ pyplot ๋ชจ๋“ˆ์„ plt๋กœ ์ž„ํฌํŠธfrom matplotlib import rcParams # ํ•œ๊ธ€ ํ™˜๊ฒฝ ์„ค์ •์„ ์œ„ํ•œ rcParams ์ž„ํฌํŠธimport seaborn as sns # Seaborn(์”จ๋ณธ) ํŒจํ‚ค์ง€ ์ž„ํฌํŠธimport warnings# ํ•œ๊ธ€ ํ™˜๊ฒฝ ์„ค์ •def setting_styles_basic():rcParams['font.family'] = 'Malgun Gothic' # Windows# rcParams['font.family'] = 'AppleGothic' # MacrcParams['axes.unicode_minus'] = False # ํ•œ๊ธ€ ํฐํŠธ ์‚ฌ์šฉ ์‹œ, ๋งˆ์ด๋„ˆ์Šค ๊ธฐํ˜ธ๊ฐ€ ๊นจ์ง€๋Š” ํ˜„์ƒ ๋ฐฉ์ง€setting_styles_basic()# ๊ฒฝ๊ณ ์ฐฝ ๋ฌด์‹œwarnings.filterwarnings('ignore') ``` ๋‹ค์Œ์œผ๋กœ๋Š” ๊ทธ๋ž˜ํ”„์˜ ์Šค์ผ€์ผ(scale)์„ ์กฐ์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šค์ผ€์ผ ์กฐ์ •์€ `sns.set_context` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Seaborn์˜ ๋‹ค์–‘ํ•œ ์Šคํƒ€์ผ๋ง ๋ฐฉ๋ฒ•์€ [ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ๊ธฐ์ดˆํŽธ](https://www.snugarchive.com/blog/python-data-visualization-seaborn-basic/)์˜ ์Šคํƒ€์ผ๋ง ๋ถ€๋ถ„์„ ์ฐธ์กฐํ•ด ์ฃผ์„ธ์š”. ์ฝ”๋“œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๊ทธ๋ž˜ํ”„ ์ „์—ญ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.set_context('paper', # notebook, talk, posterrc={'font.size':15,'xtick.labelsize':15,'ytick.labelsize':15,'axes.labelsize':15}) ``` ์‹ค์Šต์„ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ํ™˜๊ฒฝ ์„ค์ •์„ ๋งˆ์ณค๋‹ค๋ฉด ๋‹ค์Œ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ### ๋ฐ์ดํ„ฐ ์‹ค์Šต์„ ์œ„ํ•ด์„œ Seaborn์˜ ๋‚ด์žฅ ๋ฐ์ดํ„ฐ๋ฅผ `load_dataset()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋กœ๋”ฉํ•ด ์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠน์ • ๋ฐ์ดํ„ฐ์…‹์€ Sklearn(์‚ฌ์ดํ‚ท๋Ÿฐ)์—์„œ ๋ถˆ๋Ÿฌ์™€ pandas์˜ DataFrame์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythondf_titanic = sns.load_dataset('titanic') # ํƒ€์ดํƒ€๋‹‰ํ˜ธ ๋ฐ์ดํ„ฐdf_iris = sns.load_dataset('iris') # ๋ถ“๊ฝƒ ๋ฐ์ดํ„ฐdf_penguins = sns.load_dataset('penguins') # ํŽญ๊ท„ ๋ฐ์ดํ„ฐdf_tips = sns.load_dataset('tips') # ํŒ ๋ฐ์ดํ„ฐdf_diamonds = sns.load_dataset('diamonds') # ๋‹ค์ด์•„๋ชฌ๋“œ ๋ฐ์ดํ„ฐdf_planets = sns.load_dataset('planets') # ํ–‰์„ฑ ๋ฐ์ดํ„ฐdf_flights = sns.load_dataset('flights') # ๋น„ํ–‰ ๋ฐ์ดํ„ฐfrom sklearn.datasets import load_winewine_data = load_wine()df_wines = pd.DataFrame(data=wine_data.data, # ์™€์ธ ๋ฐ์ดํ„ฐcolumns=wine_data.feature_names) ``` ๊ทธ๋Ÿผ ์ง€๊ธˆ๋ถ€ํ„ฐ ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋Š” ๋ณ€๋Ÿ‰์ด 2๊ฐœ์ธ ์ด๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ์™€ ๋ณ€๋Ÿ‰์ด 3๊ฐœ ์ด์ƒ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•  ๋•Œ๋Š” ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” `hue`, ์บ”๋ฒ„์Šค๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” `col`, ์  ํฌ๊ธฐ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” `size` ๋“ฑ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ด์šฉํ•ด ์‹œ๊ฐํ™” ์ฐจ์›์„ ๋„“ํ˜€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋‹ค๋ณ€๋Ÿ‰ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ## ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ๋ฒ”์ฃผํ˜• ๋‹ค๋ณ€๋Ÿ‰ ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” Seaborn์˜ ๊ทธ๋ž˜ํ”„๋Š” ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(๋ณ‘๋ ฌ, ๋‹ค์ค‘, ๋ˆ„์ )๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ### 1\) ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: countplot() ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(์นด์šดํŠธํ”Œ๋กฏ)์€ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. #### ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋ณ‘๋ ฌ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” ๋‘ ๋ณ€๋Ÿ‰์— ๋Œ€ํ•œ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ 2๊ฐœ๋ฅผ ๊ฐ๊ฐ์˜ ์บ”๋ฒ„์Šค(canvas)์— ๋ณ‘๋ ฌ๋กœ ๋‚˜์—ดํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `catplot()` ํ•จ์ˆ˜์— `kind='count'` ์™€ `col` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `countplot()` ํ•จ์ˆ˜๋กœ๋Š” ๋ณ‘๋ ฌ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ``` pythonsns.catplot(x='class',col='who', # ์บ”๋ฒ„์Šค ๋ถ„๋ฆฌํ•˜๊ธฐkind='count', # ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐdata=df_titanic) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='564.6090534979425'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAECAwQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAezTqUiJh//EABkQAQADAQEAAAAAAAAAAAAAAAEAAgMTQf/aAAgBAQABBQJ0Bx0Odblozyf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAaEAEAAQUAAAAAAAAAAAAAAAABAAISICFB/9oACAEBAAY/AmnsLnccP//EABsQAAMAAgMAAAAAAAAAAAAAAAABESExQWFx/9oACAEBAAE/IWUsdCCX1Xn0UQnhw2GFyf/aAAwDAQACAAMAAAAQXP8A/8QAFxEBAAMAAAAAAAAAAAAAAAAAARARIf/aAAgBAwEBPxCtGP/EABcRAQADAAAAAAAAAAAAAAAAAAEQESH/2gAIAQIBAT8QTbj/xAAaEAEAAgMBAAAAAAAAAAAAAAABABEhMbHB/9oACAEBAAE/EKadN5JnWYhYVhXAjcVCjuzaToTl7O0//9k=) ![countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/02ab5a2c205cbf781b0002b4f0d93f91/b3a8b/bcd-catplot-count-parallel-titanic.jpg) ![countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/02ab5a2c205cbf781b0002b4f0d93f91/b3a8b/bcd-catplot-count-parallel-titanic.jpg) countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ #### ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” `countplot()` ๋˜๋Š” `catplot()`์— `hue` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•ด์„œ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `hue` ์˜ต์…˜์€ ๋ณ€๋Ÿ‰์„ ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ž…๋‹ˆ๋‹ค. ๋จผ์ € ์ˆ˜์ง ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ถ€ํ„ฐ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ##### ์ˆ˜์ง ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ `countplot()` ํ•จ์ˆ˜ ๋˜๋Š” `caplot()` ํ•จ์ˆ˜๋กœ ์ˆ˜์ง ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜์˜ `x` ํŒŒ๋ผ๋ฏธํ„ฐ์— ๊ฐ€๋กœ์ถ• ๋ฒ”์ฃผ๋กœ ์‚ฌ์šฉํ•  DataFrame์˜ ์—ด ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ , `hue` ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋‹ค๋ฅธ ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•  DataFrame์˜ ์—ด ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.countplot(x='class', hue='who', data=df_titanic) # ์ฝ”๋“œ1# ๋˜๋Š”# ์ฝ”๋“œ2sns.catplot(x='class', hue='who', kind='count',palette='pastel', # ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ์ง€์ •: {'man': 'b', 'woman': 'g', 'child': 'r'}edgecolor='.6', # ๋ง‰๋Œ€ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ ํˆฌ๋ช…๋„ ์ง€์ •data=df_titanic) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='549.1749174917492'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAduwSD//xAAWEAEBAQAAAAAAAAAAAAAAAAABEAL/2gAIAQEAAQUC0LCM/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFhAAAwAAAAAAAAAAAAAAAAAAASAx/9oACAEBAAY/AqG//8QAGRABAAMBAQAAAAAAAAAAAAAAAQARMRAh/9oACAEBAAE/IbAKGNkx7HSY5//aAAwDAQACAAMAAAAQU8//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAaEAEAAwEBAQAAAAAAAAAAAAABABEhMRBB/9oACAEBAAE/EAjnCxsjAQHN2omv1W+LrCf/2Q==) ![countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a6ac84be12a99da59b3f3a2a719da797/ccf18/bcd-countplot-vertical-multiple-titanic.jpg) ![countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a6ac84be12a99da59b3f3a2a719da797/ccf18/bcd-countplot-vertical-multiple-titanic.jpg) countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ `histplot()` ํ•จ์ˆ˜์— `multiple='dodge'` ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `histplot()` ํ•จ์ˆ˜๋Š” ์ˆ˜์น˜ํ˜• ์ž๋ฃŒ๋ฅผ ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด์ง€๋งŒ, ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ง‰๋Œ€ ์‚ฌ์ด์— ๊ฐ„๊ฒฉ์„ ์ฃผ๊ณ  x์ถ• ๋ˆˆ๊ธˆ์„ ์—†์• ๋ฉด ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ผ๋ฐ˜ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์ฒ˜๋Ÿผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonax = sns.histplot(x='sex', hue='survived',multiple='dodge', # ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐshrink=.8, # ๋ง‰๋Œ€ ์‚ฌ์ด ๊ฐ„๊ฒฉ ์กฐ์ •data=df_titanic)ax.tick_params(bottom=False) # x์ถ• ๋ˆˆ๊ธˆ ์ˆจ๊ธฐ๊ธฐ ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='761.1111111111111'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGQAAAQUAAAAAAAAAAAAAAAAAAAECAwQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQD/2gAMAwEAAhADEAAAAdO3EQ8UH//EABwQAQACAQUAAAAAAAAAAAAAAAECEQADEhMhMf/aAAgBAQABBQKa8z0R8lpknZeBR//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/ASf/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPwFn/8QAGRAAAgMBAAAAAAAAAAAAAAAAABEBAiEQ/9oACAEBAAY/AqcwYnOCP//EABsQAQACAgMAAAAAAAAAAAAAAAEAESExQVFh/9oACAEBAAE/IaBaDxEWOiIbaQ2lE6jVhnrcOpP/2gAMAwEAAgADAAAAEG//AP/EABgRAQEBAQEAAAAAAAAAAAAAAAERACFR/9oACAEDAQE/EBFX3MvN/8QAFxEBAQEBAAAAAAAAAAAAAAAAAREAIf/aAAgBAgEBPxBWBizu/8QAGhABAAMBAQEAAAAAAAAAAAAAAQARITFBUf/aAAgBAQABPxA1pG27sSZBbkDqq4s5TL8duEAyFGPWwmih9n//2Q==) ![histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a547e3232decc7d0847fa1771f3b7b6d/2b1f4/bcd-countplot-vertical-multiple2-titanic.jpg) ![histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a547e3232decc7d0847fa1771f3b7b6d/2b1f4/bcd-countplot-vertical-multiple2-titanic.jpg) histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ด๋ฒˆ์—๋Š” ์ˆ˜ํ‰ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ##### ์ˆ˜ํ‰ ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜ํ‰ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ๋•Œ ์‚ฌ์šฉํ•œ ํ•จ์ˆ˜์— `x` ํŒŒ๋ผ๋ฏธํ„ฐ ๋Œ€์‹  `y` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.countplot(y='class', hue='who', data=df_titanic) # ์ฝ”๋“œ1# ๋˜๋Š”sns.catplot(y='class', hue='who', kind='count',palette='pastel', edgecolor='.6',data=df_titanic) # ์ฝ”๋“œ2 ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='551.3873473917869'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAQACBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe4iaiP/xAAaEAABBQEAAAAAAAAAAAAAAAABABARIjFB/9oACAEBAAEFAosW6cX/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAVEAEBAAAAAAAAAAAAAAAAAAARIP/aAAgBAQAGPwJa/8QAGxAAAQQDAAAAAAAAAAAAAAAAAQAQESExQWH/2gAIAQEAAT8hN0FiFpxjg5//2gAMAwEAAgADAAAAEGAP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAGhAAAwEAAwAAAAAAAAAAAAAAAAERIRAxcf/aAAgBAQABPxBkCIQ0I9qOtrE82Xgdngj/2Q==) ![countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ฐ€๋กœ ๊ทธ๋ฃนํ˜• ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a9ee0ce90a68f626bfa8c99e769c17b1/26d6d/bcd-countplot-horizontal-multiple-titanic.jpg) ![countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ฐ€๋กœ ๊ทธ๋ฃนํ˜• ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a9ee0ce90a68f626bfa8c99e769c17b1/26d6d/bcd-countplot-horizontal-multiple-titanic.jpg) countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ฐ€๋กœ ๊ทธ๋ฃนํ˜• ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ #### ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ Seaborn์œผ๋กœ ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด `histplot()` ํ•จ์ˆ˜์— `multiple='stack'` ์˜ต์…˜์„ ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ##### ์ˆ˜์ง ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ``` pythonax = sns.histplot(x='sex', hue='survived',multiple='stack', # ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐshrink=.8, # ๋ง‰๋Œ€ ์‚ฌ์ด ๊ฐ„๊ฒฉ ์กฐ์ •data=df_titanic)ax.tick_params(bottom=False) # x์ถ• ๋ˆˆ๊ธˆ ์•ˆ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='777.6223776223776'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIBBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAABAP/aAAwDAQACEAMQAAAB0ZsJDjA//8QAGRAAAgMBAAAAAAAAAAAAAAAAAQIAAxET/9oACAEBAAEFAryRK3ytSGDoGnMYq4P/xAAXEQEAAwAAAAAAAAAAAAAAAAABEBEh/9oACAEDAQE/AQ24/8QAFxEBAAMAAAAAAAAAAAAAAAAAARARIf/aAAgBAgEBPwFcqP/EABkQAAIDAQAAAAAAAAAAAAAAAAARARAhIv/aAAgBAQAGPwKFh0xwaKv/xAAbEAADAQADAQAAAAAAAAAAAAAAAREhMUFhcf/aAAgBAQABPyHUHpi1Olb9NQS9nxRxtU0TJM//2gAMAwEAAgADAAAAEHw//8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERIf/aAAgBAwEBPxBOjHLh/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERIf/aAAgBAgEBPxBuCFZp/8QAGxAAAgMAAwAAAAAAAAAAAAAAAREAITFBUfH/2gAIAQEAAT8QMG2YiuoWMoQKJUoQWxYVxOWeIhgFWc+RihDdz//Z) ![histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜์ง ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/eabc50748f46df565cb991e91a2aacde/40c27/bcd-countplot-vertical-stacked-titanic.jpg) ![histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜์ง ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/eabc50748f46df565cb991e91a2aacde/40c27/bcd-countplot-vertical-stacked-titanic.jpg) histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜์ง ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ##### ์ˆ˜ํ‰ ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜ํ‰ ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `x` ํŒŒ๋ผ๋ฏธํ„ฐ ๋Œ€์‹  `y` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonax = sns.histplot(y='sex', hue='survived',multiple='stack', # ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐshrink=.8, # ๋ง‰๋Œ€ ์‚ฌ์ด ๊ฐ„๊ฒฉ ์กฐ์ •palette='pastel', # ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ์ง€์ •data=df_titanic);ax.tick_params(left=False) # y์ถ• ๋ˆˆ๊ธˆ ์•ˆ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='725.2747252747253'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAECAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHsztIxh//EABgQAQEBAQEAAAAAAAAAAAAAAAEAEQIh/9oACAEBAAEFAuoNjyTYMcv/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwFn/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8BJ//EABYQAAMAAAAAAAAAAAAAAAAAAAAgMf/aAAgBAQAGPwIq/wD/xAAZEAADAQEBAAAAAAAAAAAAAAAAAREhMUH/2gAIAQEAAT8h3NGcBYjE9FBIUen/2gAMAwEAAgADAAAAEPPP/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8QAhP/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxBIs//EABsQAAMAAwEBAAAAAAAAAAAAAAABETFBUWGR/9oACAEBAAE/EHrD5z4XdWbRtSukqMCmlpRM0G7o/9k=) ![histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜ํ‰ ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/53653a723bea8756dc604083ad9c5dd5/bb43f/bcd-countplot-horizontal-stacked-titanic.jpg) ![histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜ํ‰ ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/53653a723bea8756dc604083ad9c5dd5/bb43f/bcd-countplot-horizontal-stacked-titanic.jpg) histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜ํ‰ ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ### 2\) ์š”์•ฝ ํ†ต๊ณ„๋Ÿ‰ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: barplot() ์š”์•ฝ ํ†ต๊ณ„๋Ÿ‰ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ์— ๋Œ€ํ•œ ์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ƒ˜ํ”Œ๋ง(์›๋ณธ ๋ฐ์ดํ„ฐ์™€ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ์ƒ˜ํ”Œ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ณต์› ์ถ”์ถœ)ํ•˜์—ฌ ์–ป์€ ํ‘œ๋ณธ๋“ค์˜ ํ‰๊ท ๊ณผ ๊ทธ ํ‰๊ท ์˜ ์‹ ๋ขฐ๊ตฌ๊ฐ„(confidence interval)์„ ๋‚˜ํƒ€๋‚ธ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ์‹ ๋ขฐ๊ตฌ๊ฐ„์€ ๋ง‰๋Œ€ ์œ„ ๊ฒ€์ •์ƒ‰ ์˜ค์ฐจ ๋ง‰๋Œ€(error bar)๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์š”์•ฝ ํ†ต๊ณ„๊ฐ’ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `barplot()` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `catplot()` ํ•จ์ˆ˜์— `kind='bar'` ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ๋ณต์› ์ƒ˜ํ”Œ๋ง๋œ ํ‘œ๋ณธ๋“ค์˜ ํ‰๊ท ๊ณผ 95% ์‹ ๋ขฐ๊ตฌ๊ฐ„์ด ํ‘œํ˜„๋˜์ง€๋งŒ `estimator` ํŒŒ๋ผ๋ฏธํ„ฐ์™€ `ci` ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ฐ๊ฐ ์š”์•ฝ ํ†ต๊ณ„๊ฐ’๊ณผ ์‹ ๋ขฐ๊ตฌ๊ฐ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. > - estimator: ์ค‘์•™๊ฐ’ `np.median`, ํ•ฉ๊ณ„ `np.sum` ๋“ฑ > - ci: ์‹ ๋ขฐ๊ตฌ๊ฐ„ ์ง€์ •(๊ธฐ๋ณธ๊ฐ’: 95), `sd`๋กœ ์„ค์ • ์‹œ ํ‘œ์ค€ํŽธ์ฐจ(standard deviation)๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ, `None`์œผ๋กœ ์„ค์ • ์‹œ ์˜ค์ฐจ ๋ง‰๋Œ€ ์ œ๊ฑฐ > - n\_boot: ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ƒ˜ํ”Œ๋ง ํšŸ์ˆ˜(๊ธฐ๋ณธ๊ฐ’: 1000) ๋จผ์ € ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฒ•๋ถ€ํ„ฐ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #### ๊ธฐ๋ณธ ##### ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜์ง ํ‰๊ท  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.barplot(x='day', y='total_bill', data=df_tips)# ๋˜๋Š”sns.catplot(x='day', y='total_bill', kind='bar', data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='814.4927536231885'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMBAgQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQL/2gAMAwEAAhADEAAAAeonRSSBo3//xAAaEAEBAAIDAAAAAAAAAAAAAAACAxITAREh/9oACAEBAAEFAlXGnNl3Bphyypo9nLWf/8QAGBEAAgMAAAAAAAAAAAAAAAAAABECIUH/2gAIAQMBAT8BwknR/8QAFxEAAwEAAAAAAAAAAAAAAAAAAhARQf/aAAgBAgEBPwEri//EABoQAAIDAQEAAAAAAAAAAAAAAAARAQIhMUH/2gAIAQEABj8Ciq6VWMdp9IsyN4Jn/8QAGRABAQEAAwAAAAAAAAAAAAAAAREAITGB/9oACAEBAAE/IXi0FuZMCrmNDg2ZCTR2/OKFPN3/2gAMAwEAAgADAAAAEGzv/8QAGhEBAAEFAAAAAAAAAAAAAAAAAQARMUFRof/aAAgBAwEBPxDLdeRJNk//xAAYEQADAQEAAAAAAAAAAAAAAAAAAREhQf/aAAgBAgEBPxCjXArNP//EAB0QAQACAgIDAAAAAAAAAAAAAAEAESFRMdFBcaH/2gAIAQEAAT8QI1gk5OcfIJ0SCXw7lRDRdBijUQqMQe+4Oma/hm4zCqsla6n/2Q==) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/6d3d06946417ed7d96e45c8d8254716b/570db/bnd-barplot-vertical-tips.jpg) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/6d3d06946417ed7d96e45c8d8254716b/570db/bnd-barplot-vertical-tips.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ##### ์ˆ˜ํ‰ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋งŒ์ผ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ์ˆ˜ํ‰์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `barplot()` ํ•จ์ˆ˜์— `orient='h'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.barplot(x='total_bill', y='day', orient='h', data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='788.8111888111888'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAG+fpYy1Cj/xAAbEAACAQUAAAAAAAAAAAAAAAABAhEAAwQTMv/aAAgBAQABBQLI6UqGp7Yc6EkLA//EABYRAAMAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAwEBPwGBf//EABURAQEAAAAAAAAAAAAAAAAAABAh/9oACAECAQE/Aaf/xAAcEAACAQUBAAAAAAAAAAAAAAAAAREQITFCkaH/2gAIAQEABj8CWROX7S89NukH/8QAGhABAAMBAQEAAAAAAAAAAAAAAQARIUFRkf/aAAgBAQABPyGmiM4sdlY+xdgnYOXjyk0F/WEYugqf/9oADAMBAAIAAwAAABDYD//EABkRAAEFAAAAAAAAAAAAAAAAAAEQESGx4f/aAAgBAwEBPxBwTWp//8QAFhEBAQEAAAAAAAAAAAAAAAAAIQEQ/9oACAECAQE/EKymf//EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWGh/9oACAEBAAE/EF394PvyaCqdvlbKcQAkOJRRdA3BNuCDIQttn//Z) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/53a8221010b7bda4d605f51adc419097/f781e/bnd-barplot-horizontal-tips.jpg) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/53a8221010b7bda4d605f51adc419097/f781e/bnd-barplot-horizontal-tips.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ #### ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ `barplot()` ํ•จ์ˆ˜์— `hue` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ##### ์ˆ˜์ง ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋‹ค์Œ์€ ๋ณ€๋Ÿ‰์ด 3๊ฐœ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•˜๋Š” ์˜ˆ์‹œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ``` pythonsns.barplot(x='day', y='total_bill',hue='smoker', data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='833.009708737864'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHYlSUOMH//xAAaEAADAAMBAAAAAAAAAAAAAAABAgMAERIT/9oACAEBAAEFAjQB/YbnTtGl04hrJy4X/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGxAAAgIDAQAAAAAAAAAAAAAAABEBEgIiMTL/2gAIAQEABj8CrJCjoyzMdvImf//EABoQAAMAAwEAAAAAAAAAAAAAAAABESFBgbH/2gAIAQEAAT8hjh5VE+40XIZR7JOCKSFngNhcP//aAAwDAQACAAMAAAAQX9//xAAYEQACAwAAAAAAAAAAAAAAAAAAAREhQf/aAAgBAwEBPxBRpR//xAAYEQACAwAAAAAAAAAAAAAAAAAAAREhQf/aAAgBAgEBPxBzhZ//xAAfEAEAAgEDBQAAAAAAAAAAAAABABEhMUGBYXGhwfD/2gAIAQEAAT8QIgrlDH2ICFbStVVbczaftHCze2fc8wxCUPdfPSUejbvCf//Z) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/c59363148a173643e974d80473fab796/5c7f8/bnd-barplot-vertical-multiple-tips.jpg) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/c59363148a173643e974d80473fab796/5c7f8/bnd-barplot-vertical-multiple-tips.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ##### ์ˆ˜ํ‰ ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜ํ‰ ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ์œผ๋ฉด `orient=h` ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.barplot(x='total_bill', y='day',hue='smoker', orient='h', data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='804.7393364928911'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQBAgP/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABfq5nDBJX/8QAGRAAAgMBAAAAAAAAAAAAAAAAAQMAAhEy/9oACAEBAAEFAn9p7llixCq7k//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABoQAAICAwAAAAAAAAAAAAAAAAAQARFBkfH/2gAIAQEABj8COq5sztf/xAAdEAACAgEFAAAAAAAAAAAAAAAAARFxMSFRYaHB/9oACAEBAAE/IcFc+DJak23gRB14Mp24sf/aAAwDAQACAAMAAAAQ9A//xAAXEQADAQAAAAAAAAAAAAAAAAAQESEx/9oACAEDAQE/EIsH/8QAFxEAAwEAAAAAAAAAAAAAAAAAEBEhMf/aAAgBAgEBPxCvR//EABsQAQADAAMBAAAAAAAAAAAAAAEAESExUYFx/9oACAEBAAE/EN4vvu/ErxhSBV3zELL3YXWwVqQ9aXLRGWygeT//2Q==) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/5745ca10ede82def90203ff24a9cdd2b/808b9/bnd-barplot-horizontal-multiple-tips.jpg) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/5745ca10ede82def90203ff24a9cdd2b/808b9/bnd-barplot-horizontal-multiple-tips.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ #### ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `barplot()` ํ•จ์ˆ˜์— `dodge=False`์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Seaborn์—์„œ ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” ํ‰๊ท ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ง‰๋Œ€์˜ ์ตœ๋Œ“๊ฐ’ ์œ„์— ๋‹ค๋ฅธ ํ‰๊ท ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ง‰๋Œ€๋ฅผ ์Œ“์•„์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ๋ž˜ํ”„ ์ž์ฒด๋ฅผ ์„œ๋กœ ๊ฒน์ณ์„œ ๊ทธ๋ฆฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ``` pythonsns.barplot(x='day', y='total_bill',hue='smoker', dodge=False,data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='835.0364963503649'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAgADBf/EABUBAQEAAAAAAAAAAAAAAAAAAAID/9oADAMBAAIQAxAAAAHrl5zanM//xAAZEAEBAAMBAAAAAAAAAAAAAAACAQADEhP/2gAIAQEAAQUCrkfrmpVFa+nNWAcT/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAEREkH/2gAIAQMBAT8BVRxh/8QAGBEAAwEBAAAAAAAAAAAAAAAAAAEREiH/2gAIAQIBAT8BehWdP//EABgQAAMBAQAAAAAAAAAAAAAAAAABESEx/9oACAEBAAY/ApooulZaLeEp/8QAGhAAAwEBAQEAAAAAAAAAAAAAAAERIUGRsf/aAAgBAQABPyFKZaVJb9ox7bwkZZCL+M7pp//aAAwDAQACAAMAAAAQv8//xAAYEQADAQEAAAAAAAAAAAAAAAAAASERQf/aAAgBAwEBPxBM10o+D//EABgRAAMBAQAAAAAAAAAAAAAAAAABIRFB/9oACAECAQE/EG3FCTo//8QAHhABAQACAQUBAAAAAAAAAAAAAREAMSFBUWFx0aH/2gAIAQEAAT8Qcq3BIHPzEgyXypE8YqAhG4fudERRPf3DDW17rlHYqzP/2Q==) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„1](https://www.snugarchive.com/static/0290c4543939129c56212d470ce6ac33/a6702/bnd-barplot-vertical-stacked-tips.jpg) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„1](https://www.snugarchive.com/static/0290c4543939129c56212d470ce6ac33/a6702/bnd-barplot-vertical-stacked-tips.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„1 ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” `barplot()` ํ•จ์ˆ˜๋ฅผ ์—ฐ์ด์–ด ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythons1 = sns.barplot(x='species', y='sepal_length',color='coral', ci=None, data=df_iris)s2 = sns.barplot(x='species', y='petal_length',color='powderblue', ci=None, data=df_iris) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='861.0169491525423'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAECAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHXVqFkhP/EABsQAAEEAwAAAAAAAAAAAAAAAAEAAhESAyIx/9oACAEBAAEFAnZKnZM4WSaoCB//xAAWEQADAAAAAAAAAAAAAAAAAAAQEVH/2gAIAQMBAT8BcH//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAgEBPwGH/8QAGBAAAgMAAAAAAAAAAAAAAAAAARAAITH/2gAIAQEABj8CyG2V/8QAGxABAAMAAwEAAAAAAAAAAAAAAQARITFBUXH/2gAIAQEAAT8hqTVy0lx1U9VfsImctTIn/9oADAMBAAIAAwAAABAAz//EABcRAQEBAQAAAAAAAAAAAAAAAAEAIXH/2gAIAQMBAT8QcALt/8QAFhEBAQEAAAAAAAAAAAAAAAAAASEQ/9oACAECAQE/ECq5/8QAGxABAAMBAQEBAAAAAAAAAAAAAQARITFRQZH/2gAIAQEAAT8QalWfXm1EmgjjSb7L9jbqtjBrPSCc28/ZvG25/9k=) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„2](https://www.snugarchive.com/static/f9eb2e540d328308ce086a40af2b969f/35731/bnd-barplot-vertical-stacked-iris.jpg) ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„2](https://www.snugarchive.com/static/f9eb2e540d328308ce086a40af2b969f/35731/bnd-barplot-vertical-stacked-iris.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„2 ์œ„ ๊ทธ๋ž˜ํ”„์—์„œ ๋ง‰๋Œ€์˜ y์ถ•๊ฐ’(์ƒ‰์น ๋œ ๋ถ€๋ถ„)์€ ๊ฐ๊ฐ `sepal_length`์˜ ํ‰๊ท ๊ณผ `petal_length`์˜ ํ‰๊ท ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ### 3\) ํฌ์ธํŠธ ํ”Œ๋กฏ: pointplot() ํฌ์ธํŠธํ”Œ๋กฏ์€ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์™€ ๋™์ผํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  ํ‰๊ท ๊ฐ’์„ ๋ง‰๋Œ€ ๋Œ€์‹  ์ (point)์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ํฌ์ธํŠธํ”Œ๋กฏ์€ `pointplot()` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ํฌ์ธํŠธํ”Œ๋กฏ์€ ํ•œ ํ™”๋ฉด์— ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๋น„๊ตํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ``` pythonsns.pointplot(x='day', y='total_bill', data=df_tips)# ๋˜๋Š”sns.catplot(x='day', y='total_bill', kind='point', data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='811.3475177304965'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB3aEUf//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEAAQUCX//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEABj8CX//EABoQAAIDAQEAAAAAAAAAAAAAAAABETFREEH/2gAIAQEAAT8hTRdc9FmESf/aAAwDAQACAAMAAAAQo8//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAaEAEAAwEBAQAAAAAAAAAAAAABABEhMVFh/9oACAEBAAE/EGa5bew4RnsRMuAmKpjb49RWlB+T/9k=) ![pointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํฌ์ธํŠธ ํ”Œ๋กฏ](https://www.snugarchive.com/static/cb0373248c15bc9039972ddb2da1b08c/c7d87/bnd-pointplot-vertical-tips.jpg) ![pointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํฌ์ธํŠธ ํ”Œ๋กฏ](https://www.snugarchive.com/static/cb0373248c15bc9039972ddb2da1b08c/c7d87/bnd-pointplot-vertical-tips.jpg) pointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํฌ์ธํŠธ ํ”Œ๋กฏ ๋งŒ์ผ ์‹ ๋ขฐ๊ตฌ๊ฐ„์ด ์•„๋‹ˆ๋ผ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด `ci='sd'`๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์„ ๊ณผ ํฌ์ธํŠธ๋ฅผ ๋‹ค๋ฅธ ๋ชจ์–‘์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.pointplot(x='class', y='survived', hue='sex',palette={'male': 'g', 'female': 'm'},markers=['^', 'o'], # ๋งˆ์ปค ์ง€์ •linestyles=['-', '--'], # ์„  ์Šคํƒ€์ผ ์ง€์ •data=df_titanic) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='829.1970802919708'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe7UI0P/xAAWEAADAAAAAAAAAAAAAAAAAAAAIEH/2gAIAQEAAQUCSn//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAYEAADAQEAAAAAAAAAAAAAAAAAAREhQf/aAAgBAQABPyFaQZDaRH0//9oADAMBAAIAAwAAABDzD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABoQAQADAQEBAAAAAAAAAAAAAAEAESFBUWH/2gAIAQEAAT8Qo1fZhs35Bti07FXxF7DAaAGXBYuf/9k=) ![์˜ต์…˜์„ ์ถ”๊ฐ€ํ•œ ํฌ์ธํŠธ ํ”Œ๋กฏ](https://www.snugarchive.com/static/d32cf10dfe66b50c610761b22a9b3273/aaaf3/bnd-pointplot-options-tips.jpg) ![์˜ต์…˜์„ ์ถ”๊ฐ€ํ•œ ํฌ์ธํŠธ ํ”Œ๋กฏ](https://www.snugarchive.com/static/d32cf10dfe66b50c610761b22a9b3273/aaaf3/bnd-pointplot-options-tips.jpg) ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•œ ํฌ์ธํŠธ ํ”Œ๋กฏ ### 4\) ์ƒ์ž๊ทธ๋ฆผ: boxplot(), boxenplot(), violinplot() ์ƒ์ž๊ทธ๋ฆผ(๋ฐ•์Šคํ”Œ๋กฏ)์€ ๋ฐ์ดํ„ฐ์˜ ๋ถ„์œ„๋ฅผ 5๊ฐ€์ง€ ์š”์•ฝ ์ˆ˜์น˜(five-number summary)๋กœ ์ œ๊ณตํ•˜๋Š” ๋„ํ‘œ์ž…๋‹ˆ๋‹ค. > - ์ œ3์‚ฌ๋ถ„์œ„์ˆ˜ (Q3): ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘ ์ƒ์œ„ 25%์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’, ๋ฐ•์Šค์˜ ์œ„์ชฝ ๊ฒฝ๊ณ„์„ ์œผ๋กœ ํ‘œ์‹œ > - ์ œ2์‚ฌ๋ถ„์œ„์ˆ˜ (Q2 ๋˜๋Š” ์ค‘์•™๊ฐ’): ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ 50%์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’(์ค‘์•™๊ฐ’), ๋ฐ•์Šค ๋‚ด๋ถ€์˜ ์„ ์œผ๋กœ ํ‘œ์‹œ > - ์ œ1์‚ฌ๋ถ„์œ„์ˆ˜ (Q1): ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘ ํ•˜์œ„ 25%์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’, ๋ฐ•์Šค์˜ ์•„๋ž˜์ชฝ ๊ฒฝ๊ณ„์„ ์œผ๋กœ ํ‘œ์‹œ > - ์‚ฌ๋ถ„์œ„ ๋ฒ”์œ„ (IQR): Q3 - Q1, ๋ฐ•์Šค์˜ ๋†’์ด๋กœ ํ‘œํ˜„ > - ์ตœ๋Œ“๊ฐ’ (Maximum): ์ด์ƒ์น˜๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ฐ์ดํ„ฐ์…‹์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’, ๋ฐ•์Šคํ”Œ๋กฏ์—์„œ ์œ„์ชฝ ์ˆ˜์—ผ์˜ ๋์ ์œผ๋กœ ํ‘œ์‹œ > - ์ตœ์†Ÿ๊ฐ’ (Minimum): ์ด์ƒ์น˜๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ฐ์ดํ„ฐ์…‹์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’, ๋ฐ•์Šคํ”Œ๋กฏ์—์„œ ์•„๋ž˜์ชฝ ์ˆ˜์—ผ์˜ ๋์ ์œผ๋กœ ํ‘œ์‹œ > - ์ด์ƒ์น˜ (Outliers): ์ผ๋ฐ˜์ ์œผ๋กœ Q1 - 1.5IQR ๋ฏธ๋งŒ์ด๊ฑฐ๋‚˜ Q3 + 1.5IQR ์ดˆ๊ณผ์ธ ๊ฐ’๋“ค์„ ๊ฐœ๋ณ„ ์ ์œผ๋กœ ํ‘œ์‹œ #### ๊ธฐ๋ณธ Seaborn์—์„œ ์ƒ์ž๊ทธ๋ฆผ์„ ๋งŒ๋“ค๋ ค๋ฉด `boxplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `catplot()` ํ•จ์ˆ˜์— 'kind='box'\` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.boxplot(data=df_iris)# ๋˜๋Š”sns.catplot(data=df_iris, kind='box') ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='830.7692307692308'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAwACBf/EABQBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAe1lCBoJf//EABoQAAICAwAAAAAAAAAAAAAAAAECABEDEiL/2gAIAQEAAQUC63ORQ5lwqpKqa//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABwQAAEEAwEAAAAAAAAAAAAAAAEAAhEhEBJBUf/aAAgBAQAGPwLmqDfczFhW4lf/xAAcEAACAgIDAAAAAAAAAAAAAAABEQAhUWEQMYH/2gAIAQEAAT8hzDe7l4ieq4FWFBHWHEF9KZ//2gAMAwEAAgADAAAAEA/f/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQBBUf/aAAgBAwEBPxBHJDt//8QAFxEAAwEAAAAAAAAAAAAAAAAAARARQf/aAAgBAgEBPxA3F//EABwQAQADAAIDAAAAAAAAAAAAAAEAETEhUXGhsf/aAAgBAQABPxCwkZG0vTNi/NABNrmcHjqE1uX3E0QqJ+I3FLwB8T//2Q==) ![boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์ƒ์ž๊ทธ๋ฆผ](https://www.snugarchive.com/static/46e5f43c5c2230c3052c267dc5a320db/c51d1/bnd-boxplot-overview-iris.jpg) ![boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์ƒ์ž๊ทธ๋ฆผ](https://www.snugarchive.com/static/46e5f43c5c2230c3052c267dc5a320db/c51d1/bnd-boxplot-overview-iris.jpg) boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์ƒ์ž๊ทธ๋ฆผ ๋งŒ์ผ ์ƒ์ž๊ทธ๋ฆผ์„ ์ˆ˜ํ‰์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `orient='h'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.boxplot(data=df_iris, orient='h') ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='689.3081761006289'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAEDBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB3ILDgGV//8QAGhAAAgIDAAAAAAAAAAAAAAAAAQIAEBETMf/aAAgBAQABBQLkzsoqGv8A/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGhAAAgIDAAAAAAAAAAAAAAAAAQIAEBESIf/aAAgBAQAGPwLs1KsKwRf/xAAcEAEAAgEFAAAAAAAAAAAAAAABABEQITFBUWH/2gAIAQEAAT8hUsqj2G251GqwVSTpnGP/2gAMAwEAAgADAAAAEIsP/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/EE2f/8QAFhEAAwAAAAAAAAAAAAAAAAAAEBEh/9oACAECAQE/EKx//8QAGxABAQEAAgMAAAAAAAAAAAAAAREAITFBcaH/2gAIAQEAAT8QioHlQ+4UrKhknJW7qzXJ7UOHAADgDB373//Z) ![boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ](https://www.snugarchive.com/static/0cde07c2c4031965664d2644de26c7c9/963c3/bnd-boxplot-overview-horizontal-iris.jpg) ![boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ](https://www.snugarchive.com/static/0cde07c2c4031965664d2644de26c7c9/963c3/bnd-boxplot-overview-horizontal-iris.jpg) boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ 3์ฐจ์› ๋ฐ•์Šคํ”Œ๋กฏ์€ `hue` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์„œ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `hue` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋”ํ•˜๋ฉด ๋น„์Šทํ•œ ์†์„ฑ์˜ ๋ฐ์ดํ„ฐ๋ผ๋ฆฌ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythondf_tips['weekend'] = df_tips['day'].isin(['Sat', 'Sun'])sns.boxplot(x='total_bill', y='day', hue='weekend',orient='h',dodge=False,data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='813.3651551312649'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIDBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB7kNMocYr/8QAHBAAAAYDAAAAAAAAAAAAAAAAAAECAxAREiEx/9oACAEBAAEFAj4wdt1CE4jY/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGhAAAgIDAAAAAAAAAAAAAAAAEBEAASFBYf/aAAgBAQAGPwK5nXSmP//EABoQAAIDAQEAAAAAAAAAAAAAAAARASExUYH/2gAIAQEAAT8huvV0QRK9aE6IZmEpd2eD/9oADAMBAAIAAwAAABBvD//EABcRAQADAAAAAAAAAAAAAAAAAAEQMUH/2gAIAQMBAT8QAvY//8QAFhEBAQEAAAAAAAAAAAAAAAAAATEQ/9oACAECAQE/EFYTP//EAB4QAQACAgEFAAAAAAAAAAAAAAEAESExUUFhcYGR/9oACAEBAAE/ELg2OjBun5MzDIm3ktjeq894q1HfMy8rwROh9p//2Q==) ![boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ2](https://www.snugarchive.com/static/dc902d29efca7a0413fd9217b2fe91aa/12b6f/bnd-boxplot-overview-horizontal2-iris.jpg) ![boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ2](https://www.snugarchive.com/static/dc902d29efca7a0413fd9217b2fe91aa/12b6f/bnd-boxplot-overview-horizontal2-iris.jpg) boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ2 #### ๋ฐ•์Šจ ํ”Œ๋กฏ ๋ฐ•์Šจ ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ„์œ„๋กœ ๋‚˜๋ˆˆ ๋ฐ•์Šคํ”Œ๋กฏ์ž…๋‹ˆ๋‹ค. ๋ฐ•์Šจ ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ์…‹์„ ๋” ๋งŽ์€ ๋ถ„์œ„์ˆ˜(quantiles)๋กœ ๋‚˜๋ˆ„์–ด ๊ธฐ์กด์˜ ์ƒ์ž๊ทธ๋ฆผ๋ณด๋‹ค ์ด์ƒ์น˜(outliers)์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ฐ•์Šจ ํ”Œ๋กฏ์€ ํฐ ๋ฐ์ดํ„ฐ์…‹์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ•์Šจ ํ”Œ๋กฏ์„ ๋งŒ๋“ค๋ ค๋ฉด `boxenplot()`์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `catplot()` ํ•จ์ˆ˜์— `kind='boxen'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.boxenplot(x='color', y='price',data=df_diamonds.sort_values('color'))# ๋˜๋Š”sns.catplot(x='color', y='price', kind='boxen',data=df_diamonds.sort_values('color')) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='799.0654205607476'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHbnSUMOV//xAAaEAEBAQADAQAAAAAAAAAAAAABAgADERIT/9oACAEBAAEFAl3s00JUFPxjs45N/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFxABAAMAAAAAAAAAAAAAAAAAEAAhMf/aAAgBAQAGPwJuYf/EABkQAQADAQEAAAAAAAAAAAAAAAEAESHwkf/aAAgBAQABPyGh2Jrp1y0WcQ82smzXsJoMn//aAAwDAQACAAMAAAAQzx//xAAXEQADAQAAAAAAAAAAAAAAAAAAARFB/9oACAEDAQE/EFNHD//EABURAQEAAAAAAAAAAAAAAAAAABBB/9oACAECAQE/EKf/xAAfEAEAAgEEAwEAAAAAAAAAAAABABFhITFRwUGx0fH/2gAIAQEAAT8QHwLFBrEJHQzkdThSPR7gBUEKU3/IU2pVrfl+wDp1buK6n//Z) ![boxenplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ•์Šจ ํ”Œ๋กฏ](https://www.snugarchive.com/static/a9fb30679b28624187af254012522fd7/09a25/bnd-boxenplot-diamonds.jpg) ![boxenplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ•์Šจ ํ”Œ๋กฏ](https://www.snugarchive.com/static/a9fb30679b28624187af254012522fd7/09a25/bnd-boxenplot-diamonds.jpg) boxenplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ•์Šจ ํ”Œ๋กฏ #### ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ์€ ์ƒ์ž๊ทธ๋ฆผ๊ณผ KDE ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด ์ถ”์ •ํ•œ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜(์ปค๋„๋ฐ€๋„์ถ”์ • ํ•จ์ˆ˜)๋ฅผ ํ•ฉ์นœ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `violinplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `catplot()` ํ•จ์ˆ˜์— `kind='violin'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythonsns.violinplot(x='total_bill', y='day', data=df_tips)# ๋˜๋Š”sns.catplot(x='total_bill', y='day', kind='violin', data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='797.1631205673759'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMBBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB2k2kw0kr/8QAGRAAAwEBAQAAAAAAAAAAAAAAAAECMgMR/9oACAEBAAEFArzyyNEz4z//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAZEAACAwEAAAAAAAAAAAAAAAABEAAxkfH/2gAIAQEABj8CM67Or//EABoQAQEAAwEBAAAAAAAAAAAAAAEAESGBYfD/2gAIAQEAAT8h+CzNBXsbIJl3CwdW2Pb/2gAMAwEAAgADAAAAEJwP/8QAFREBAQAAAAAAAAAAAAAAAAAAECH/2gAIAQMBAT8Qh//EABYRAAMAAAAAAAAAAAAAAAAAABARIf/aAAgBAgEBPxCsf//EAB4QAQACAgEFAAAAAAAAAAAAAAEAESExQVGBsdHh/9oACAEBAAE/EMt5ZuhO5mV1F5W8ko1XSYIOVKMftrPuGLfif//Z) ![violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ](https://www.snugarchive.com/static/1bd4d4123a07c6970bf6f991a9b2687b/7cc12/bnd-violinplot-tips.jpg) ![violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ](https://www.snugarchive.com/static/1bd4d4123a07c6970bf6f991a9b2687b/7cc12/bnd-violinplot-tips.jpg) violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด `hue` ์™€ `split=True` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='899.0033222591363'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAwABBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHtE4w1tX//xAAbEAACAQUAAAAAAAAAAAAAAAABAgADEBExMv/aAAgBAQABBQJ+aWowyEQrb//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABsQAAIBBQAAAAAAAAAAAAAAAAEQMQARkaLR/9oACAEBAAY/Aj2p2u5GF//EABsQAQADAQADAAAAAAAAAAAAAAEAESFhUXGh/9oACAEBAAE/Iej4iHKfcKqWhm+S45qPCSmf/9oADAMBAAIAAwAAABDvz//EABURAQEAAAAAAAAAAAAAAAAAABBB/9oACAEDAQE/EIf/xAAVEQEBAAAAAAAAAAAAAAAAAAAQQf/aAAgBAgEBPxCn/8QAHBABAAICAwEAAAAAAAAAAAAAAQARITFBYYGh/9oACAEBAAE/EFmEdgZ66gWo6VKaK3ndxD89EQeRAc2PqR4Cf//Z) ![violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ2](https://www.snugarchive.com/static/182faa4b01b87df127b138ae5b347be0/90a5b/bnd-violinplot-tips2.jpg) ![violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ2](https://www.snugarchive.com/static/182faa4b01b87df127b138ae5b347be0/90a5b/bnd-violinplot-tips2.jpg) violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ2 ### 5\) ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์™ธ์—๋„ ๋ณ€๋Ÿ‰์ด ๋ชจ๋‘ ๋ฒ”์ฃผํ˜•์ธ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ๋•Œ๋Š” ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„(mosaic plot)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„๋Š” ๊ทธ๋ฃน ๋‚ด์˜ ๋ฐ์ดํ„ฐ ๋ฐฑ๋ถ„์œจ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„๋Š” ๋ณ€์ˆ˜๊ฐ€ 3๊ฐœ ์ด์ƒ์ผ ๋•Œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„๋Š” `statmodels.graphics.mosaic` ํŒจํ‚ค์ง€์˜ `mosaic()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonfrom statsmodels.graphics.mosaicplot import mosaicimport matplotlib.pyplot as pltprops = lambda key: {'color': 'teal' if '1' in key else 'lightgray'}labelizer = lambda k: {('female','1'): '์—ฌ์„ฑ\n(์ƒ์กด)', ('female','0'): '์—ฌ์„ฑ\n(์‚ฌ๋ง)',('male','1'): '๋‚จ์„ฑ\n(์ƒ์กด)', ('male', '0'): '๋‚จ์„ฑ\n(์‚ฌ๋ง)'}[k]mosaic(df_titanic.sort_values('sex'),['sex', 'survived'],properties=props, # ์ƒ‰์ƒ ๋ณ€๊ฒฝlabelizer=labelizer, # ๋ผ๋ฒจ ๋ณ€๊ฒฝaxes_label=False) # ์ถ• ๋ผ๋ฒจ ์ˆจ๊ธฐ๊ธฐplt.title('ํƒ€์ดํƒ€๋‹‰ํ˜ธ ์„ฑ๋ณ„ ์ƒ์กด์ž', fontsize=17) # ์ œ๋ชฉ ๋‚ด์šฉ ๋ฐ ๊ธ€์ž ํฌ๊ธฐ ์„ค์ • ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='865.7381615598887'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAAF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgED/9oADAMBAAIQAxAAAAFK81CxZGo//8QAGxAAAgIDAQAAAAAAAAAAAAAAAAEDEgIREyL/2gAIAQEAAQUC7+zY4sr2lE5D/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAIBElH/2gAIAQMBAT8BV9LQf//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/AYj/xAAaEAACAgMAAAAAAAAAAAAAAAAAERBCITFB/9oACAEBAAY/Akuy8bKlT//EABwQAAICAgMAAAAAAAAAAAAAAAABEUEhMVGx8P/aAAgBAQABPyFzy6bLJcskVdh4yMLPY//aAAwDAQACAAMAAAAQ1B//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQMBAT8QQ2lf/8QAFxEBAAMAAAAAAAAAAAAAAAAAAAERUf/aAAgBAgEBPxCcLP/EABsQAAICAwEAAAAAAAAAAAAAAAERADEhQVHx/9oACAEBAAE/EHpFG3G06hwGDaYFT1oM8QYMnr5C6pHBF3qP/9k=) ![mosaic ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ชจ์ž์ดํฌ ํ”Œ๋กฏ](https://www.snugarchive.com/static/34de17600def235b7b59c3ef258b13f4/bf1d4/bcd-mosaicplot-titanic.jpg) ![mosaic ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ชจ์ž์ดํฌ ํ”Œ๋กฏ](https://www.snugarchive.com/static/34de17600def235b7b59c3ef258b13f4/bf1d4/bcd-mosaicplot-titanic.jpg) mosaic ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ชจ์ž์ดํฌ ํ”Œ๋กฏ ์ง€๊ธˆ๊นŒ์ง€ Seaborn์œผ๋กœ ๋‹ค๋ณ€๋Ÿ‰ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋‹ค๋ณ€๋Ÿ‰ ์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ## ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ์ˆ˜์น˜ํ˜• ### 1\) ์ ๊ทธ๋ž˜ํ”„: stripplot(), swarmplot() ์ ๊ทธ๋ž˜ํ”„๋Š” ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๋„ํ‘œ์ž…๋‹ˆ๋‹ค. ์ ๊ทธ๋ž˜ํ”„๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ์‹ค์ œ ์œ„์น˜์™€ ๋ถ„ํฌ๋ฅผ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Seaborn์—์„œ ์ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋ณธ ํ•จ์ˆ˜๋Š” `stripplot()`์ž…๋‹ˆ๋‹ค. #### stripplot ``` pythonsns.stripplot(data=df_tips)# ๋˜๋Š”sns.catplot(kind='strip', data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='785.2941176470589'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAdy4ZQg//8QAFxABAAMAAAAAAAAAAAAAAAAAEBEhQv/aAAgBAQABBQKbNH//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAWEAEBAQAAAAAAAAAAAAAAAAABEAD/2gAIAQEABj8CCmZ//8QAGxAAAgMAAwAAAAAAAAAAAAAAAAERITEQQVH/2gAIAQEAAT8hp7JI4aWF9FxYWH//2gAMAwEAAgADAAAAEFDP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8QZ//EABsQAAIDAQEBAAAAAAAAAAAAAAERACExUWGB/9oACAEBAAE/ECBTTT5E5BTjgQINuPZ2/KyoJVllbP/Z) ![stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ](https://www.snugarchive.com/static/5b617da746fd501a0af66dac6e4cdf85/a340d/bnd-stripplot-overview-tips.jpg) ![stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ](https://www.snugarchive.com/static/5b617da746fd501a0af66dac6e4cdf85/a340d/bnd-stripplot-overview-tips.jpg) stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ `stripplot()` ํ•จ์ˆ˜์— `jitter` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ์ผ๋ ฌ๋กœ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. > - jitter: ์ง€ํ„ฐ(jitter)๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์— ์•ฝ๊ฐ„์˜ ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ, ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์กฐ๊ธˆ์”ฉ ์›€์ง์—ฌ์„œ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋ž˜ํ”„์— ์—ฌ๋Ÿฌ ๋ฒˆ ๊ฒน์ณ์„œ ํ‘œ์‹œ๋˜๋Š” ํ˜„์ƒ์„ ๋ง‰์•„์คŒ ``` pythonsns.stripplot(x='total_bill', y='smoker',jitter=False,data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='812.3515439429929'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB3rAUf//EABUQAQEAAAAAAAAAAAAAAAAAABAR/9oACAEBAAEFAmP/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAYEAACAwAAAAAAAAAAAAAAAAAAEQEQMf/aAAgBAQABPyHRWgR//9oADAMBAAIAAwAAABADD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABkQAQADAQEAAAAAAAAAAAAAAAEAESExUf/aAAgBAQABPxAHVm+kPU4sdcJa0KyW25//2Q==) ![stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ2](https://www.snugarchive.com/static/764527cfba0c51d37446011527338ccf/8ca03/bnd-stripplot-jitter-false-tips.jpg) ![stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ2](https://www.snugarchive.com/static/764527cfba0c51d37446011527338ccf/8ca03/bnd-stripplot-jitter-false-tips.jpg) stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ2 ๋ฐ์ดํ„ฐํฌ์ธํŠธ๊ฐ€ ์„œ๋กœ ๊ฒน์น˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด `dodge=True` ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. > - dodge=True: hue๋กœ ๊ตฌ๋ถ„๋œ ๊ทธ๋ฃน ์‚ฌ์ด ๊ฐ„๊ฒฉ์„ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฒน์น˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ ``` pythonsns.stripplot(x='tip', y='day',palette='Spectral', # ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ์ง€์ •dodge=True,data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='780.4195804195805'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe7pCKP/xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAEFAl//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAYEAEBAAMAAAAAAAAAAAAAAAAAEQExQf/aAAgBAQABPyHaMo7Kj//aAAwDAQACAAMAAAAQg8//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAaEAEBAQADAQAAAAAAAAAAAAABEQAhQYFR/9oACAEBAAE/EIJtPcD5jHjNtqe4Gugy15d//9k=) ![stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ3](https://www.snugarchive.com/static/dab3c1b616a3ac4f57aea0cf65b1bb24/7f819/bnd-stripplot-palette-tips.jpg) ![stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ3](https://www.snugarchive.com/static/dab3c1b616a3ac4f57aea0cf65b1bb24/7f819/bnd-stripplot-palette-tips.jpg) stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ3 `dodge=True` ์˜ต์…˜์ฒ˜๋Ÿผ ์ ๊ทธ๋ž˜ํ”„์—์„œ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋“ค์ด ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๊ณ  ์ƒˆ์˜ ๋ฌด๋ฆฌ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ `swarmplot()`์ž…๋‹ˆ๋‹ค. #### swarmplot `swarmplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ์ ๋„ํ‘œ์˜ ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ๋–ผ(swarm)์ฒ˜๋Ÿผ ๋ฌด๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐํฌ์ธํŠธ๊ฐ€ ์ค‘์ฒฉ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋–ผ ํ”Œ๋กฏ์„ ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋ณธ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.swarmplot(data=df_tips)# ๋˜๋Š”sns.catplot(kind='swarm', data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='833.3333333333334'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIDAQX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB7dIujGC//8QAGhAAAgIDAAAAAAAAAAAAAAAAARACERIhIv/aAAgBAQABBQK+kYDPa//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAQEAAwAAAAAAAAAAAAAAAAEQADFB/9oACAEBAAY/Ago9zc//xAAZEAEAAwEBAAAAAAAAAAAAAAABABEhkUH/2gAIAQEAAT8hqIdblRiUHU945Aa1n//aAAwDAQACAAMAAAAQdM//xAAXEQADAQAAAAAAAAAAAAAAAAABEBEh/9oACAEDAQE/EBdq/8QAFxEBAAMAAAAAAAAAAAAAAAAAARARMf/aAAgBAgEBPxBcqP/EABoQAQADAQEBAAAAAAAAAAAAAAEAETEhUfD/2gAIAQEAAT8QdzFvkpOHkuTjG0Dd6z6xoSV8Kn//2Q==) ![swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ์ „์ฒด ๋ณ€์ˆ˜](https://www.snugarchive.com/static/fa6ab31f73ac096256f7ab35191761f7/5ff8e/bnd-swarmplot-overview-tips.jpg) ![swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ์ „์ฒด ๋ณ€์ˆ˜](https://www.snugarchive.com/static/fa6ab31f73ac096256f7ab35191761f7/5ff8e/bnd-swarmplot-overview-tips.jpg) swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ์ „์ฒด ๋ณ€์ˆ˜ `x`์™€ `y` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋–ผ ํ”Œ๋กฏ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythonsns.swarmplot(x='day', y='total_bill', data=df_tips)# ๋˜๋Š”sns.catplot(x='day', y='total_bill', kind='swarm', data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='818.5819070904646'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAQAF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAd1BKZf/xAAZEAACAwEAAAAAAAAAAAAAAAAAAREhQTH/2gAIAQEAAQUCRvSL1I//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAXEAEAAwAAAAAAAAAAAAAAAAAQABFx/9oACAEBAAY/Am5h/8QAGhABAQEAAwEAAAAAAAAAAAAAAREAIUFRgf/aAAgBAQABPyFDqQe4YpvqmlD3kSHG/9oADAMBAAIAAwAAABC0H//EABcRAQADAAAAAAAAAAAAAAAAAAABITH/2gAIAQMBAT8QTtP/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxBn/8QAHBABAQEBAAIDAAAAAAAAAAAAAREAITFBUWGx/9oACAEBAAE/EEA5UuRVKGYR8Df3ScDoW/eDEOgPxTAYAPRv/9k=) ![swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ํŠน์ • ๋ณ€์ˆ˜](https://www.snugarchive.com/static/de44744004bc30e06ef6ea1e31296af3/aad75/bnd-swarmplot-details-tips.jpg) ![swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ํŠน์ • ๋ณ€์ˆ˜](https://www.snugarchive.com/static/de44744004bc30e06ef6ea1e31296af3/aad75/bnd-swarmplot-details-tips.jpg) swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ํŠน์ • ๋ณ€์ˆ˜ ์‹ค์ œ ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ์ ์ด ์•„๋‹ˆ๋ผ ์„ ๋ถ„(rug)์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ### 2\) ์„ ๋ถ„๊ทธ๋ž˜ํ”„: rugplot() ์‹ค์ˆ˜ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ์„ ๋ถ„์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด `rugplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `rugplot()`์€ ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ๊ฐ ์ถ• ์œ„์— ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ``` pythonsns.rugplot(x='total_bill', y='tips', data='df_tips') ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='791.5492957746479'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe9ZDQP/xAAWEAADAAAAAAAAAAAAAAAAAAABECD/2gAIAQEAAQUCgL//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAaEAACAgMAAAAAAAAAAAAAAAABEQAQITFR/9oACAEBAAE/IRkm1wqMyHqv/9oADAMBAAIAAwAAABBgD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABoQAQADAQEBAAAAAAAAAAAAAAEAESExUXH/2gAIAQEAAT8QQOtK7KPCGLHa2HqBE0N+CBRrbP/Z) ![rugplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์„ ๋ถ„๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a50abfafe005f07f530728d6a3a1de86/41823/bnd-rugplot-only-tips.jpg) ![rugplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์„ ๋ถ„๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a50abfafe005f07f530728d6a3a1de86/41823/bnd-rugplot-only-tips.jpg) rugplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์„ ๋ถ„๊ทธ๋ž˜ํ”„ ๋ณดํ†ต ์„ ๋ถ„๊ทธ๋ž˜ํ”„๋Š” ๋‹ค๋ฅธ ๊ทธ๋ž˜ํ”„์™€ ํ•จ๊ป˜ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋ฅผ ๊ฒน์ณ ๊ทธ๋ฆฌ๋ ค๋ฉด ๊ทธ๋ž˜ํ”„ ํ•จ์ˆ˜๋ฅผ ์—ฐ์ด์–ด ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.scatterplot(x='total_bill', y='tip', data=df_tips)sns.rugplot(x='total_bill', y='tip', data=df_tips) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='814.4927536231885'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAQAF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAd6BGZf/xAAXEAADAQAAAAAAAAAAAAAAAAAAARAh/9oACAEBAAEFAjI0Kf/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEABj8CX//EABkQAAMAAwAAAAAAAAAAAAAAAAABESExYf/aAAgBAQABPyFNVibaGVvSrFMEp//aAAwDAQACAAMAAAAQD8//xAAVEQEBAAAAAAAAAAAAAAAAAAAQIf/aAAgBAwEBPxCn/8QAFREBAQAAAAAAAAAAAAAAAAAAECH/2gAIAQIBAT8Qh//EABsQAQADAQADAAAAAAAAAAAAAAEAEUEhMVGB/9oACAEBAAE/EEW47nJik9k5eQCOUhbuVIjTCiL8k+T/2Q==) ![rugplot() ํ•จ์ˆ˜์™€ scatterplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a13bfba4d75f776fd172a17198ff4fca/570db/bnd-rugplot-with-another-graph-tips.jpg) ![rugplot() ํ•จ์ˆ˜์™€ scatterplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a13bfba4d75f776fd172a17198ff4fca/570db/bnd-rugplot-with-another-graph-tips.jpg) rugplot() ํ•จ์ˆ˜์™€ scatterplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„ ### 3\) ํžˆ์Šคํ† ๊ทธ๋žจ: histplot() Seaborn์—์„œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜๋Š” `histplot()`์ž…๋‹ˆ๋‹ค. `displot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. Seaborn์—์„œ `histplot()` ํ•จ์ˆ˜๋กœ ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ(bivariate histogram)์„ ๊ทธ๋ฆด ๋•Œ๋Š” ๋ณ€๋Ÿ‰์„ ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” `histplot()` ๋Œ€์‹  `displot()`์„ ์ด์šฉํ•ด ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #### ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ ``` pythonsns.histplot(x='flipper_length_mm', hue='species', data=df_penguins) # ์ฝ”๋“œ1# ๋˜๋Š”sns.displot(x='flipper_length_mm', hue='species', data=df_penguins) # ์ฝ”๋“œ1 ``` ์˜ต์…˜์„ ์ด์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. > - hue: ๊ทธ๋ฃน๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ > - multiple='stack': ๋ˆ„์  ํžˆ์Šคํ† ๊ทธ๋žจ(ํฌ๊ฐœ์ง€ ์•Š๊ณ  ์Œ“๊ธฐ) > - multiple='dodge': ๋‹ค์ค‘ ํžˆ์Šคํ† ๊ทธ๋žจ ``` pythonsns.displot(x='flipper_length_mm', hue='species',element='step', data=df_penguins) # ์ฝ”๋“œ2sns.displot(x='flipper_length_mm', hue='species',multiple='stack', data=df_penguins) # ์ฝ”๋“œ3sns.displot(x='flipper_length_mm', hue='sex',multiple='dodge', data=df_penguins) # ์ฝ”๋“œ4 ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1083.9622641509434'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAIAAADUsmlHAAAACXBIWXMAAAsTAAALEwEAmpwYAAACk0lEQVR42l1TXU8TURDt//TFF1/9BfoqMTH6AAYVTTQhvpg0gkZiJUhAEAMtBYO22LJsW9rt7ra7vd9fu3Xubgulk81m9s6cOzNnzhbG47FUymgVEQEPfKbjW2aMkVIInWCub0fGBQuWMtHqsOE1vRHXWCdmDqwE7414N+bJWM5GLXiEkBR8vdI+6wSfakUsCUKIC55nYEy05HUPd2PWiOpYYcY4Y2xaWQhE+cuN8pfdveflpUqvIgjlfAJWSlHGq5f+n/NaNay6yIVGJuBswrTZDRfefny/+vrFztO1+uds8uvZ0zAmP49/lw+2Kpf71f7JrbZtb5S1Ox3HcTq9NuZ4jhguRBD4V1cdr98jnN6AkyQBStIkSdMUWAXywDGZJZnlDhwKAZfAOiZRsAJkwwAwIbwa/65ct8+BK/vJtNZKaWaND0PiXHRd1xuEmFKbD8ACXABJdh9Ko5EE4vXU8sq5Hw15HEuCxSjm+YmtnO3ZiiTEPETAYTonEsjjQiY8lji07M3ELRjaSpQoX/inrg3DiLNgpSSTJvy7u7/91XCSGD0vkkSK5e/nxUOYyQH2GKWw3jyDQK86HdT3S5uloFkNgr5tx5hpZUqBx4cfys+KpQff7jcjB8UxqCgHM0a51O7RxuZW6WB748fejtKaEjLds1EnbvBu+fHl6r07xbsrlVezs4EziKK1Nwsri4+eLC0W19evoxORDGLkn5fbZ3snTrUVtedEgtCodnp0Wvl1fHzUcho3M6eZ5VeZdCLKyeHUAQOVSG2UNrOHViSwcYRoHBHX7bbavTgm+X+TiURBlBAbbbV6kDAcYEKmIskWrgjmfQ/5Ph4OaBgQKQClcg2Cw5jwPOz38SAk3c6IUQEQrfV/8KD3qo53spwAAAAASUVORK5CYII=) ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ1](https://www.snugarchive.com/static/f4899dab74b3ffd997ddac06a340ddf7/5d31a/bnd-histplot-options-penguins.png) ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ1](https://www.snugarchive.com/static/f4899dab74b3ffd997ddac06a340ddf7/5d31a/bnd-histplot-options-penguins.png) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ1 ``` pythonsns.displot(x='bill_length_mm', y='species', hue='species',legend=False, data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1106.9767441860465'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAASABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIDBQT/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB3OLvzpNFEs6yrAf/xAAbEAADAAIDAAAAAAAAAAAAAAABAgMAIRAyQf/aAAgBAQABBQJtiRaZG+Kq5qnXPc//xAAXEQADAQAAAAAAAAAAAAAAAAABICEx/9oACAEDAQE/AYNT/8QAFhEBAQEAAAAAAAAAAAAAAAAAASAh/9oACAECAQE/AVQyP//EABoQAAICAwAAAAAAAAAAAAAAAAEhABEDECD/2gAIAQEABj8CRlZDe0FBx//EABoQAAMAAwEAAAAAAAAAAAAAAAABESAhMZH/2gAIAQEAAT8hpi2Dk2z5ujRUeQpXM1u7h//aAAwDAQACAAMAAAAQF+88/8QAGREBAQADAQAAAAAAAAAAAAAAAREAECFx/9oACAEDAQE/EK1C+Zb03//EABgRAAIDAAAAAAAAAAAAAAAAAAABEBEh/9oACAECAQE/EKwFqn//xAAaEAEAAgMBAAAAAAAAAAAAAAABABEhMUEQ/9oACAEBAAE/EEHhCB24oyukiOp1EpKMlr2C7hMlVAC1FPiF8G/P/9k=) ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ2](https://www.snugarchive.com/static/4cf3106171c3126181a456dc610cc533/bfb20/bnd-histplot-options2-penguins.jpg) ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ2](https://www.snugarchive.com/static/4cf3106171c3126181a456dc610cc533/bfb20/bnd-histplot-options2-penguins.jpg) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ2 > - log\_scale=True: x์ถ• ๊ฐ’ ๋กœ๊ทธ ์Šค์ผ€์ผ๋กœ ๋ณ€ํ™˜ > - element='poly': ๊ทธ๋ž˜ํ”„๋ฅผ ๋ถ„ํฌ๋‹ค๊ฐํ˜•(distribution polygon)์œผ๋กœ ์ง€์ • > - fill=False: ๊ทธ๋ž˜ํ”„ ์„  ์•„๋ž˜ ์ƒ‰๊น” ์ฑ„์šฐ์ง€ ์•Š๊ธฐ ``` pythonsns.displot(x='distance', hue='method', log_scale=True,element='poly', fill=False, data=df_planets) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='741.2389380530973'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB3kpQf//EABYQAQEBAAAAAAAAAAAAAAAAAAEQAP/aAAgBAQABBQKuJ//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEABj8CX//EABkQAQACAwAAAAAAAAAAAAAAAAEAERAxUf/aAAgBAQABPyHsWi4Nk1XL/9oADAMBAAIAAwAAABBgz//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABkQAQADAQEAAAAAAAAAAAAAAAEAETEhQf/aAAgBAQABPxA3x2X+qnYgQijUHC1RMYAZP//Z) ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ3](https://www.snugarchive.com/static/dee012ffe116a50d447d2308430bcbd9/731c6/bnd-histplot-options-planets.jpg) ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ3](https://www.snugarchive.com/static/dee012ffe116a50d447d2308430bcbd9/731c6/bnd-histplot-options-planets.jpg) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ3 ํ•œ ์บ”๋ฒ„์Šค ๋‚ด์— ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ  ๊ทธ๋ž˜ํ”„๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ์บ”๋ฒ„์Šค์— ๋‚˜๋ˆ„์–ด์„œ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `col` ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `col` ์˜ต์…˜์€ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ฐœ๋ณ„ ์บ”๋ฒ„์Šค์— ๋‚˜๋ˆ„์–ด ๊ทธ๋ ค์ค๋‹ˆ๋‹ค. ``` pythonsns.displot(x='flipper_length_mm',col='sex', # ์„ฑ๋ณ„์— ๋”ฐ๋ผ ์บ”๋ฒ„์Šค ๊ตฌ๋ถ„data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='597.4965229485396'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB6klEQVR42k2STW/TQBCG/cc4EiFBKeJD4vOC+AVw4dpDhUSjJoUWQoErSEiAWqWkSd00sUHQ0pYkblJRgtKEVI7jz7WbrL3edRjbCWIO1s7sPO++nl2OMeZ53igKQohhWrIs+74fV4IoYOG6LrIsRenrhhnX4ctBn2VZcWtLMR3sBoyyCRPqBmzo+UsFqVz/AxRjdDQJDk52HIdFrcm1anpdgso/beyGpn4r6Mzsp2wlhCttDbTHMFhFCMVpal26tlSyhyHQMweY0PiPWn37XDK/cXCiO3h2tTpWB7jX65mmGUulcrU7y6KNCazBQlNBo8hkS7UTc4W81HWwd//NttRWoQhmOYwx2I7g4NHqj1sZgVK201RuvxDW9o99AkJM6miJx3mAXUKmF7aebx5CN5gPB6YbBiSFWudSmr/+rLxcrM982Ds7x999KYJtNMAP3u5cmOcfvts9OtFuZITX5Z9jmML4PLfVR1efFi+mNy8vlhPJjfPz/PSTrXuvROJ533/JNzPCVIqfWiilc9Uri6WZj/v2AIcDoxRY3FXU7LeG2OisfK4Uq03xoA3pblMG23tH3ezXOmzlthvvhZp42F35UjuWNbg1bvIYGCEuMnRT65u6Ojx1AvrfO2EUWUa4pSrDU9snbnxVfwEp+QsfOALI2QAAAABJRU5ErkJggg==) ![displot ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ4](https://www.snugarchive.com/static/cee0eecb000a5764d89ec6f2547682b3/3b5c8/bnd-histplot-col-penguins.png) ![displot ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ4](https://www.snugarchive.com/static/cee0eecb000a5764d89ec6f2547682b3/3b5c8/bnd-histplot-col-penguins.png) displot ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ4 ๋งŒ์ผ ๋‘ ๋ณ€๋Ÿ‰์ด ๋ชจ๋‘ ์ˆ˜์น˜ํ˜•์ด๋ผ๋ฉด ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ํžˆํŠธ๋งต(heatmap) ๊ฐ™์€ ๋ชจ์–‘์„ ๋ ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. > - binwidth: ์ง์‚ฌ๊ฐํ˜• ํฌ๊ธฐ ์ง€์ • > - cbar: ์ƒ‰ ์ง‘์ค‘๋„์— ๋”ฐ๋ฅธ ๋นˆ๋„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ปฌ๋Ÿฌ๋ฐ” ์œ ๋ฌด ์ง€์ • > - hue: ์ƒ‰์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ๊ทธ๋ฃน๋ณ„ ๊ทธ๋ž˜ํ”„ ์„ค์ •(๋ถ„ํฌ ๊ฐ„ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์ด ์ ์–ด์•ผ ํ•จ) ``` python# ์ฝ”๋“œ1: 2์ฐจ์› - ๊ธฐ๋ณธsns.displot(x='bill_length_mm', y='bill_depth_mm',data=df_penguins)# ์ฝ”๋“œ2: 2์ฐจ์› - ์ง์‚ฌ๊ฐํ˜• ๋„“์ด ์กฐ์ •sns.displot(x='bill_length_mm', y='bill_depth_mm', binwidth=(2, .5),data=df_penguins)# ์ฝ”๋“œ3: 2์ฐจ์› - ์ปฌ๋Ÿฌ๋ฐ” ์œ ๋ฌด ์ง€์ •sns.displot(x='bill_length_mm', y='bill_depth_mm', cbar=True,data=df_penguins)# ์ฝ”๋“œ4: 3์ฐจ์› - ๊ทธ๋ฃน๋ณ„ ์ƒ‰์œผ๋กœ ๋ถ„๋ฅ˜sns.displot(x='bill_length_mm', y='bill_depth_mm', hue='species',data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1389.7005988023952'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAXABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAECAwX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAerpJHRAqgsuLf/EABwQAQACAQUAAAAAAAAAAAAAAAECEiEAAxETMf/aAAgBAQABBQKV+zctweWLTkR0ZELTBiYP/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAGhAAAgIDAAAAAAAAAAAAAAAAAAERISBBUf/aAAgBAQAGPwJcKLI2KcIR/8QAGxABAAMBAAMAAAAAAAAAAAAAAQARIUExYZH/2gAIAQEAAT8hoqdcIhbnX3L16jetguDWOx0JFBiofsIfgJ//2gAMAwEAAgADAAAAEHAPwP/EABgRAAMBAQAAAAAAAAAAAAAAAAARIQEQ/9oACAEDAQE/EFlolBZz/8QAGBEAAwEBAAAAAAAAAAAAAAAAAREhABD/2gAIAQIBAT8QZkzdxsPP/8QAHhABAQABBAMBAAAAAAAAAAAAAREAITFBUWFxgdH/2gAIAQEAAT8QdgXA4Jqq8GG3CthUdH3G34S3vAUnRD7+YrEsAMjJiUu+LEjE085dMpAbnrDggQz/2Q==) ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/b8f6ef81b3a846ab11ad5c2e8f198b9a/f0ad3/bnd-histplot-heatmap.jpg) ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/b8f6ef81b3a846ab11ad5c2e8f198b9a/f0ad3/bnd-histplot-heatmap.jpg) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ > - bins: ๋“ฑ๊ธ‰ ์ˆ˜ ์ง€์ •ํ•˜๊ธฐ > - discrete: x์ถ• ๋ผ๋ฒจ์„ ๋ง‰๋Œ€ ์ค‘๊ฐ„์— ์œ„์น˜์‹œํ‚ค๊ธฐ(True) > - pthresh: ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ํ•ด๋‹น ๋น„์œจ(0~1)์˜ ์…€ ํˆฌ๋ช… ์ฒ˜๋ฆฌํ•˜๊ธฐ > - pmax: ํฌํ™”๋„ ์ตœ๋Œ“๊ฐ’(0~1) ์ง€์ •ํ•˜๊ธฐ ``` python# ์ฝ”๋“œ1: ํŠœํ”Œ๋กœ x์™€ y๋ณ€์ˆ˜ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •sns.displot(df_planets, x='year', y='distance',bins=30, discrete=(True, False), log_scale=(False, True))# ์ฝ”๋“œ2: ๊ด€์ธก์น˜๊ฐ€ ์—†๋Š” ๋ถ€๋ถ„ ์ƒ‰์œผ๋กœ ํ‘œ์‹œ(ํˆฌ๋ช…ํ•˜๊ฒŒ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ธฐ)sns.displot(df_planets, x='year', y='distance',bins=30, discrete=(True, False),log_scale=(False, True),thresh=None)# ์ฝ”๋“œ3: ํ•œ๊ณ„์ ๊ณผ ํฌํ™”๋„ ์ง€์ •sns.displot(df_planets, x='year', y='distance',bins=30, discrete=(True, False),log_scale=(False, True),pthresh=.05, pmax=.9)# ์ฝ”๋“œ4: ์ปฌ๋Ÿฌ๋งต ์ถ”๊ฐ€sns.displot(df_planets, x='year', y='distance',bins=30, discrete=(True, False),log_scale=(False, True),cbar=True, cbar_kws=dict(shrink=.75)) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1372.8601252609603'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAXABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHuZ1bIqAWg/8QAGxAAAgIDAQAAAAAAAAAAAAAAAREAAgMQEiH/2gAIAQEAAQUCs1kco+SQAZX0b//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EABgQAAIDAAAAAAAAAAAAAAAAAAAhAREg/9oACAEBAAY/AkIZc6//xAAaEAEBAAMBAQAAAAAAAAAAAAABABEhMVFB/9oACAEBAAE/IeDHMEEIP1Mk0WBtkZC35K+Rzl//2gAMAwEAAgADAAAAEJD/ADz/xAAXEQEAAwAAAAAAAAAAAAAAAAABABAx/9oACAEDAQE/EEGGX//EABgRAQADAQAAAAAAAAAAAAAAAAEAEBEx/9oACAECAQE/EBTI9v8A/8QAGxABAQEAAwEBAAAAAAAAAAAAAREAMVFhIXH/2gAIAQEAAT8QqkCeW/DQEsXjAF/bb+5sh6c6JVAKtwu0e3NvX90h57zeEeXf/9k=) ![displot() ํ•จ์ˆ˜์— ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ6](https://www.snugarchive.com/static/a5c4f2327825070a5a1e01fb1015b99d/36675/bnd-histplot-options2-planets.jpg) ![displot() ํ•จ์ˆ˜์— ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ6](https://www.snugarchive.com/static/a5c4f2327825070a5a1e01fb1015b99d/36675/bnd-histplot-options2-planets.jpg) displot() ํ•จ์ˆ˜์— ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ6 ์ง€๊ธˆ๊นŒ์ง€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์˜ต์…˜์„ ์ด์šฉํ•ด ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ทธ๋ ค๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋งŒ์ผ ๊ทธ๋ฃน๋ณ„๋กœ ๊ด€์ธก์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ •๊ทœํ™”(normalization)ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ(data point)๊ฐ€ ๋™์ผํ•œ ์ •๋„์˜ ์Šค์ผ€์ผ(์ค‘์š”๋„)๋กœ ํ•ด์„๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ์˜ ์ค‘์š”๋„๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ด์ƒ์น˜๋ฅผ ์ง€๋‹Œ ํŠน์ • ์†์„ฑ์ด ์ „์ฒด ์†์„ฑ์ฒ˜๋Ÿผ ๋Œ€ํ‘œ๋˜๋Š” ์ผ๋ฐ˜ํ™”์˜ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋ฅผ ๊ฑฐ์นœ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ(normalized histogram)์ด ๋ฉ๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋ฅผ ์œ„ํ•œ ์Šค์ผ€์ผ๋ง ๊ธฐ์ค€์ ์œผ๋กœ๋Š” ์ „์ฒด ๊ด€์ธก์ˆ˜์™€ ๋ฉด์ ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #### ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ(์ „์ฒด ๊ด€์ธก์ˆ˜) Seaborn์—์„œ ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๋ฉด `histplot()` ํ•จ์ˆ˜ ๋˜๋Š” `displot()` ํ•จ์ˆ˜์— `stat='probability'` ๋˜๋Š” `stat='percent'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `stat` ์˜ต์…˜์— `probability` ์ธ์ž๋ฅผ ์ฃผ๋ฉด y์ถ•์ด ํ™•๋ฅ (probability)์ธ ๊ทธ๋ž˜ํ”„๊ฐ€ ๊ทธ๋ ค์ง‘๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, `percent` ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด y์ถ•์ด ๋ฐฑ๋ถ„์œจ(percent)์ธ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ์ „์ž์˜ ๊ฒฝ์šฐ ๋ง‰๋Œ€๋“ค์˜ ๋†’์ด๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋ฉด 1์ด ๋˜๊ณ , ํ›„์ž์˜ ๊ฒฝ์šฐ์—๋Š” 100์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์ถ”๊ฐ€๋ฉด ๊ฐ ๋“ฑ๊ธ‰์˜ ๋นˆ๋„์ˆ˜๋ฅผ ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ๋‚˜๋ˆˆ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` python# ์ฝ”๋“œ1: y์ถ•์ด ๋น„์œจ์ธ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจsns.histplot(x='flipper_length_mm', hue='species',stat='probability', data=df_penguins)# ์ฝ”๋“œ2: y์ถ•์ด ๋ฐฑ๋ถ„์œจ์ธ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจsns.histplot(x='flipper_length_mm', hue='species',stat='percent', data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='454.58015267175574'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAIF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAdmhKC//xAAZEAACAwEAAAAAAAAAAAAAAAACEgABETH/2gAIAQEAAQUCtmLYPP/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABcQAQEBAQAAAAAAAAAAAAAAAAAhATH/2gAIAQEABj8C7iK//8QAGRABAAMBAQAAAAAAAAAAAAAAAQARMSFB/9oACAEBAAE/IRhRLgsb7LHQWf/aAAwDAQACAAMAAAAQ/A//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAwEBPxCH/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAGhABAQADAQEAAAAAAAAAAAAAAREAIUFR0f/aAAgBAQABPxBSSMCNuvuCFEC+pzBPYbTuf//Z) ![์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/c64c854d7c6a2194c841f1b1f9d8830e/95e39/bnd-histplot-options3-penguins.jpg) ![์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/c64c854d7c6a2194c841f1b1f9d8830e/95e39/bnd-histplot-options3-penguins.jpg) ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ ์—ฌ๊ธฐ์„œ `commont_norm` ์˜ต์…˜์„ `False`๋กœ ์ง€์ •ํ•˜๋ฉด ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ „์ฒด ๊ด€์ธก์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ๋ณ„ ๊ทธ๋ฃน์˜ ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๋งŒ๋“ค์–ด์ง€๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์„œ๋กœ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. ``` python# ์ฝ”๋“œ1: y์ถ•์ด ํ™•๋ฅ ์ธ ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจsns.histplot(x='flipper_length_mm', hue='species',stat='probability',common_norm=False, data=df_penguins)# ์ฝ”๋“œ1: y์ถ•์ด ๋ฐฑ๋ถ„์œจ์ธ ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจsns.histplot(x='flipper_length_mm', hue='species',stat='percent',common_norm=False, data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='464.8854961832061'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAdi4SD//xAAZEAACAwEAAAAAAAAAAAAAAAACEgABETH/2gAIAQEAAQUCtmPYPP/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAAIDAAAAAAAAAAAAAAAAAAAhAREx/9oACAEBAAY/AtihDP/EABcQAQEBAQAAAAAAAAAAAAAAAAERACH/2gAIAQEAAT8hKowoFh3WSq7/2gAMAwEAAgADAAAAEIPP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Qh//EABgQAQEBAQEAAAAAAAAAAAAAAAERAEEx/9oACAEBAAE/EIloCK8bgcoBa8MBAD1O7//Z) ![์ „์ฒด๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”: ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/b7675ec50bae8ac783f97041597c62fc/c5407/bnd-histplot-options4-penguins.jpg) ![์ „์ฒด๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”: ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/b7675ec50bae8ac783f97041597c62fc/c5407/bnd-histplot-options4-penguins.jpg) ์ „์ฒด๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”: ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ ์ด๋ฒˆ์—๋Š” ์ „์ฒด ๊ด€์ธก์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #### ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ(๋ฉด์ ) Seaborn์—์„œ ๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”ํ•œ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๋ฉด `stat='density'` ์˜ต์…˜์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ฐ ๋“ฑ๊ธ‰์˜ ๋นˆ๋„์ˆ˜๋ฅผ ์ „์ฒด ๊ด€์ธก์น˜์˜ ๊ฐœ์ˆ˜์™€ ๋ง‰๋Œ€ ๋„ˆ๋น„(width)์˜ ๊ณฑ์œผ๋กœ ๋‚˜๋ˆˆ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ์ด ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ y์ถ•์€ ๋ฐ€๋„(density)๊ฐ€ ๋˜๊ณ , ๊ฐ ๋ง‰๋Œ€์˜ ๋„“์ด๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ํ•ฉ์€ 1์ด ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ, ๋…๋ฆฝ์ ์ธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `common_norms=False` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` python# ์ฝ”๋“œ1: y์ถ•์ด ๋ฐ€๋„์ธ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจsns.displot(df_penguins, x='flipper_length_mm', hue='species',stat='density')# ์ฝ”๋“œ2: y์ถ•์ด ๋ฐ€๋„์ธ ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจsns.displot(df_penguins, x='flipper_length_mm', hue='species',stat='density',common_norm=False) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='505.4347826086957'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAIAAAB2/0i6AAAACXBIWXMAAAsTAAALEwEAmpwYAAABaUlEQVR42k2R+UtCQRDH/a/7JyIQO+ggCKODJPohiiBLiyh/CLNMMUsxz+e79+3bdfZ425h2DLvLznznw8wwKWMM53zCWcig6xB0k8Qk5s8maJwFDDqWD5KDhO+caUoKb0QpsLjWdcstW+qYCf6PNYwxmPCX9uDx+rTQPOuHwz9Ya207jlFwWe2V3q1867wb9OIoJhGZwZY1FjC5qnw8nO0flLfvuvcKlOu588phGGJjx6Xm0cXtXjVbaBeBxtEPTAjB4rliOZfd3HvI7L8ecUaDwJ/D2NXI8dO5/PLa6s5NeuNxK9HJb29YdmS7S7sn65nFw5OFdGklBjpTp7CUwg9J/a1Zea5UG08d5/P/zErJgJBG871aq9Xfnjt2Ryd6JqXkt2mttFJhSGjEjTazoJrGlBBS4VepCCchMaoAAg9GUgCAu8An8OJ+zxv0fUo5urg/gZwUnkvHFrFGxHUJJtjjaDggnkelFF9Y1LojcB4wEgAAAABJRU5ErkJggg==) ![๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”: ๊ธฐ๋ณธ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ ๋ฐ ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/08681dee16948b89ae40f6af257fc373/f270d/bnd-histplot-options5-penguins.png) ![๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”: ๊ธฐ๋ณธ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ ๋ฐ ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/08681dee16948b89ae40f6af257fc373/f270d/bnd-histplot-options5-penguins.png) ๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”: ๊ธฐ๋ณธ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ ๋ฐ ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ ์ง€๊ธˆ๊นŒ์ง€ Seaborn์—์„œ ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ๊ณผ 2๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์€ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ๋น ๋ฅด๊ณ  ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•œ๊ณ„๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜(Probability Density Function, PDF)๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉด ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ๋“ฑ๊ธ‰์˜ ์ˆ˜๋Š” ์•„๋ฌด๋ฆฌ ๋งŽ๊ฒŒ ์žก์•„๋„ ์œ ํ•œํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋Š” ๋งค๋„๋Ÿฌ์šด ๊ณก์„ ์ธ๋ฐ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋“ฑ๊ธ‰์€ ๋ถˆ์—ฐ์†์ ์ด๋‹ค๋ณด๋‹ˆ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ชจ์–‘๋„ ๊ณ„๋‹จ๊ณผ ๊ฐ™์ด ์šธํ‰๋ถˆํ‰ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ๋Š” ๋“ฑ๊ธ‰์˜ ๊ฐ„๊ฒฉ๊ณผ ๋ฐ์ดํ„ฐ์˜ ์‹œ์ž‘ ์œ„์น˜์— ๋”ฐ๋ผ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ชจ์–‘์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›(dimension)์ด ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ๋ถ„์„ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋ธ์„ ์ถ”์ •ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ํ‘œ๋ณธ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋„ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๋‹จ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋‹จ์ ์„ ๊ฐœ์„ ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ปค๋„๋ฐ€๋„์ถ”์ •(Kernel Density Estimation, KDE)์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ๋Š” ์ปค๋„๋ฐ€๋„์ถ”์ •์ด๋ž€ ๋ฌด์—‡์ธ์ง€ ๊ทธ๋ฆฌ๊ณ  Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด KDE ๊ณก์„ ์„ ๊ทธ๋ฆฌ๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ### 4\) ์ปค๋„๋ฐ€๋„ํ•จ์ˆ˜ ๊ทธ๋ž˜ํ”„: kdeplot() ์ปค๋„๋ฐ€๋„์ถ”์ •์ด๋ž€ ์ปค๋„ ํ•จ์ˆ˜(kernel function)๋ฅผ ์ด์šฉํ•ด์„œ ํ™•๋ฅ ๋ณ€์ˆ˜์˜ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋ฅผ ์ถ”์ •ํ•˜๋Š” ๋น„๋ชจ์ˆ˜์ (non-parametric) ํ†ต๊ณ„ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋น„๋ชจ์ˆ˜์  ๋ฐฉ๋ฒ•์ด๋ž€ ๊ด€์ธก ๋ฐ์ดํ„ฐ๊ฐ€ ํŠน์ • ํ™•๋ฅ ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฅธ๋‹ค๋Š” ์ „์ œ ์—†์ด ์‹ค์‹œํ•˜๋Š” ๊ฒ€์ • ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ปค๋„ ํ•จ์ˆ˜๋ž€ ์›์ ์„ ์ค‘์‹ฌ์œผ๋กœ ๋Œ€์นญ์„ ์ด๋ฃจ๊ณ , ์–‘์˜(non-negative) ์‹ค์ˆ˜(real-valued)๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ ๋ถ„๊ฐ’์ด 1์ธ ํ•จ์ˆ˜(*K*)๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„ ํ•จ์ˆ˜์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ฐ€์šฐ์‹œ์•ˆ(Gaussian), ์ฝ”์‚ฌ์ธ(cosine), Epanechnikov ํ•จ์ˆ˜ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='864'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsTAAALEwEAmpwYAAACiklEQVR42mNgYGBgAmIxIBaF0iAsgsHm5oaxxSHiPKJY1ILMYuACYiEGCGCEYhib4T9DPdM5hlxREAaxIWIMjO+UGPiBJkkCuVJQtQJAzMmAZAsDkmFw8I+hns+4p1LDeFKlxn+Gcn6w4P//jAxz6qUYhHi0gDwDqO9kgJidAWqqEC4Dk2OnavLfLFDiO1uoEhs7WxNmoGPaOmVWLhEjIM8U6joJIOZggDoZ3YVgepXxTH7/GcW+NUsjVUE4YEqJ/xz1Dbwguc8Z3GLCbAzqQKYeNNj4YV5GD0OgA/6D6ZK2fMv4vhJrhvr/TAz2/1liJhZZlTTmWIPkztwV5BcXh0cmCAjCDJREduF/YwZWYKAzzV3lIVrRmRD+v56BCcSHYsbi7viItdNcxcAWhzIwI4WOELILhUGM+/IMHK+MGSSBGrnLulPC2pMyDP8LMfC9CeSUAeH/wJhtSso1rOpNCgaxnxozyNVDkwqyCyV4oM6+bsXACzSMK357uULWpJzI/6Eqov/XMwj8X8XAD8YgdqyUcMaE7KjMLZlKQLUC9fYMLCC9vBBHoYbhs0QG0f+h7Ip5y8Oj2rLTLMERswrhLRi7JTfDomBpWPT/ADY1YJDwQKUR6TDKkEH+/2EGwf8eDKIdHdYW9gvrfXYy7OSGJWJkDBK7wHCB23lujc+UenOb/0lAXy1lEEkxQ6RD7iQrTimwZnsGjoqpseE5OUs1GAiA/MzZmjUTQqOAQcH8/389U5Y9FzwdilubCmr31csp9RWIaxeHehsbM7iA0hQPJGjgNIzNB6JBaorDPEw7yiQ0J1bLKrvZ82jAXMgIVcgFDQdxKBuUNKSh4SIFFedAYnNCk5sQVD0oiBgB4das26b7bbgAAAAASUVORK5CYII=) ![์ปค๋„ํ•จ์ˆ˜ ์ข…๋ฅ˜](https://www.snugarchive.com/static/b6a4b2e72103fc9c5b2a7a0f03c26890/1e386/kernel-functions.png) ![์ปค๋„ํ•จ์ˆ˜ ์ข…๋ฅ˜](https://www.snugarchive.com/static/b6a4b2e72103fc9c5b2a7a0f03c26890/1e386/kernel-functions.png) ์ปค๋„ํ•จ์ˆ˜ ์ข…๋ฅ˜ ๋ฐ€๋„๊ทธ๋ฆผ(density plot)์€ ์ปค๋„ ์Šค๋ฌด๋”ฉ(kernel smoothing)์„ ์ด์šฉํ•ด ์ถ”์ •ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. KDE์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ปค๋„ ํ•จ์ˆ˜๋กœ ๋Œ€์น˜ํ•˜์—ฌ ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ๋‚˜ํƒ€๋‚ฌ๋˜ ๋“ฑ๊ธ‰์˜ ๋ถˆ์—ฐ์†์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. KDE๋กœ ์ถ”์ •ํ•œ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ๊ณก์„ ์ž…๋‹ˆ๋‹ค. ๋‹จ, KDE ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์กฐ๊ฑด์ด ์žˆ์Šต๋‹ˆ๋‹ค. KDE ๋ฐฉ๋ฒ•์€ ๊ทน๋‹จ๊ฐ’์ด ์—†๋Š” ์—ฐ์† ์ž๋ฃŒ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ๊ณก์„ ์ธ๋ฐ ์ด์ƒ์น˜๊ฐ€ ์žˆ์œผ๋ฉด ํ•ด๋‹น ๊ฐ’์—์„œ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๊ฐ€ ๋พฐ์กฑํ•œ ๋ชจ์–‘์„ ๋ ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด์ƒ์น˜๊ฐ€ ์žˆ๋Š” ์—ฐ์† ์ž๋ฃŒ์—๋Š” KDE ๋ณด๋‹ค๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. Seaborn์—์„œ KDE ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `kdeplot()`์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `displot()` ํ•จ์ˆ˜์— `kind='kde'` ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” `displot()` ํ•จ์ˆ˜์— `kind='kde'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์„œ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. > - multiple='stack': ๊ทธ๋ž˜ํ”„ ์Œ“์•„์„œ ๊ทธ๋ฆฌ๊ธฐ > - multiple='fill': ๊ฐ ๊ฐ’์—์„œ ๊ฒน์นœ ๋ถ„ํฌ(stacked distribution) ์ •๊ทœํ™”ํ•ด์„œ ๊ทธ๋ฆฌ๊ธฐ(๋‹จ๋ณ€๋Ÿ‰์ผ ๋•Œ๋งŒ ์œ ํšจ, ๋ชจ๋“  ๊ฐ’์—์„œ y์ถ•์˜ ๋ฐ€๋„๊ฐ€ 1) > - fill=True: ๊ทธ๋ž˜ํ”„ ๋ถˆํˆฌ๋ช…ํ•˜๊ฒŒ ๊ทธ๋ฆฌ๊ธฐ > - cumulative=True: ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜ ๊ทธ๋ฆฌ๊ธฐ ``` python# ์ฝ”๋“œ1: ๊ธฐ๋ณธ ๊ทธ๋ž˜ํ”„sns.displot(df_penguins, x='flipper_length_mm', kind='kde', hue='species')# ์ฝ”๋“œ2: ๊ทธ๋ž˜ํ”„ ๊ฒน์ณ์„œ ๊ทธ๋ฆฌ๊ธฐsns.displot(df_penguins, x='flipper_length_mm', kind='kde', hue='species',multiple='stack')# ์ฝ”๋“œ3: ๋ชจ๋“  ๊ฐ’์—์„œ ๊ฒน์นœ ๋ถ„ํฌ ์ •๊ทœํ™”ํ•˜๊ธฐsns.displot(df_penguins, x='flipper_length_mm', kind='kde', hue='species',multiple='fill')# ์ฝ”๋“œ4: ๊ทธ๋ž˜ํ”„ ๋ถˆํˆฌ๋ช…ํ•˜๊ฒŒ ๊ทธ๋ฆฌ๊ธฐsns.displot(df_penguins, x='flipper_length_mm', kind='kde', hue='species',fill=True) # sns.kdeplot์—์„œ๋Š” shade=True๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ# ์ฝ”๋“œ5: ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜(Cumulative Distribution Function, CDF) ๊ทธ๋ฆฌ๊ธฐsns.displot(df_penguins, x='flipper_length_mm', kind='kde', hue='species',cumulative=True, common_norm=False, common_grid=True)# ์ฝ”๋“œ6sns.displot(df_penguins, x='flipper_length_mm', kind='kde',hue='species',fill=True, common_norm=False, palette='crest',alpha=.5, linewidth=0) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1871.7159763313612'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAfABQDASIAAhEBAxEB/8QAGQABAQEAAwAAAAAAAAAAAAAAAAIBAwQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAfejh7CUFyQtg//EABsQAAIDAAMAAAAAAAAAAAAAAAECABAREyFB/9oACAEBAAEFAo25CX5TbdCetX//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAZEAACAwEAAAAAAAAAAAAAAAAQIQAgMTL/2gAIAQEABj8CiC5vg//EABsQAQADAQADAAAAAAAAAAAAAAEAESFBMWFx/9oACAEBAAE/Ib2dkH3CZQdHI65cJX2IsbqEV4mjQkLrxP/aAAwDAQACAAMAAAAQdASA/8QAFREBAQAAAAAAAAAAAAAAAAAAESD/2gAIAQMBAT8QWP/EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8QH//EAB0QAQADAAIDAQAAAAAAAAAAAAEAESFRYTFBcYH/2gAIAQEAAT8QqUs3uXeqaVnmKzUfkOeoGq97KA/lVwFeKiVu8dxc4HDAVisJgfYMuxcx0WDgJ//Z) ![kdeplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๋ฐ€๋„๊ทธ๋ฆผ](https://www.snugarchive.com/static/bf5798442999e116e4b6b8f78608b74a/715e9/bnd-kdeplot-options-penguins.jpg) ![kdeplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๋ฐ€๋„๊ทธ๋ฆผ](https://www.snugarchive.com/static/bf5798442999e116e4b6b8f78608b74a/715e9/bnd-kdeplot-options-penguins.jpg) kdeplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๋ฐ€๋„๊ทธ๋ฆผ ์ด๋ณ€๋Ÿ‰ KDE ๊ทธ๋ž˜ํ”„๋Š” ๋“ฑ๊ณ ์„ (contours)์œผ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋“ฑ๊ณ ์„ ์€ ๋ฐ€๋„๊ฐ€ ๊ฐ™์€ ์ง€์ (iso-proportions)์„ ์ด์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. > - thresh: ๊ฐ€์žฅ ๋‚ฎ์€ ๋ ˆ๋ฒจ์˜ ๋“ฑ๊ณ ์„  ํฌ๊ธฐ ์กฐ์ • > - levels: ๋“ฑ๊ณ ์„  ๊ฐœ์ˆ˜ ๋˜๋Š” ๋ชจ์–‘ ``` python# ์ฝ”๋“œ1: 2์ฐจ์› - ๊ธฐ๋ณธ ๊ทธ๋ž˜ํ”„sns.displot(df_penguins, x='bill_length_mm', y='bill_depth_mm', kind='kde')# ์ฝ”๋“œ2: 2์ฐจ์› - ๋“ฑ๊ณ ์„  ํฌ๊ธฐ ๋ฐ ๊ฐœ์ˆ˜ ์กฐ์ •sns.displot(df_penguins, x='bill_length_mm', y='bill_depth_mm', kind='kde',thresh=.2, levels=4)# ์ฝ”๋“œ3: 2์ฐจ์› - ๊ฐœ๋ณ„ ๋“ฑ๊ณ ์„  ํฌ๊ธฐ ์ง€์ •sns.displot(df_penguins, x='bill_length_mm', y='bill_depth_mm', kind='kde',levels=[.01, .05, .1, .7])# ์ฝ”๋“œ4: 3์ฐจ์› - ๊ทธ๋ฃน๋ณ„ ๊ทธ๋ž˜ํ”„ ์ƒ‰์œผ๋กœ ๊ตฌ๋ถ„sns.displot(df_penguins, x='bill_length_mm', y='bill_depth_mm', kind='kde',hue='species') # fill=True ์ถ”๊ฐ€ํ•˜๋ฉด ๋“ฑ๊ณ ์„  ์•ˆ์ด ์ƒ‰์œผ๋กœ ์ฑ„์›Œ์ง ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1288.3177570093458'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAVABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHu2E0hc0KD/8QAFhABAQEAAAAAAAAAAAAAAAAAARAg/9oACAEBAAEFAsNZ/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAFBABAAAAAAAAAAAAAAAAAAAAMP/aAAgBAQAGPwIf/8QAGhAAAwADAQAAAAAAAAAAAAAAAAERITFBEP/aAAgBAQABPyF2j86NOC0XI2BaP//aAAwDAQACAAMAAAAQ98i8/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAf/8QAGhAAAwEBAQEAAAAAAAAAAAAAAAERITFBUf/aAAgBAQABPxCC7l4UnbkE6jHU4KTWcJatcY7mcZ8vg0wf/9k=) ![๋‹ค์–‘ํ•œ ๋‹ค๋ณ€๋Ÿ‰ KDE ๋“ฑ๊ณ ์„  ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/18091ba9d9551884f39dae5a2e45d3d7/06e58/bnd-kdeplot-contour-penguins.jpg) ![๋‹ค์–‘ํ•œ ๋‹ค๋ณ€๋Ÿ‰ KDE ๋“ฑ๊ณ ์„  ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/18091ba9d9551884f39dae5a2e45d3d7/06e58/bnd-kdeplot-contour-penguins.jpg) ๋‹ค์–‘ํ•œ ๋‹ค๋ณ€๋Ÿ‰ KDE ๋“ฑ๊ณ ์„  ๊ทธ๋ž˜ํ”„ ### 5\) ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜: ecdfplot() ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `ecdfplot()` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `displot()` ํ•จ์ˆ˜์— \`kind='ecdf' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. > - hue\_order: \# ์ƒ‰ ์ˆœ์„œ ์ง€์ • > - complementary=True: ์ƒ๋ณด ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜(complementary cumulative distribution function, CCDF) ๊ทธ๋ฆฌ๊ธฐ ``` python# ์ฝ”๋“œ1sns.displot(df_penguins, x='flipper_length_mm', kind='ecdf')# ์ฝ”๋“œ2sns.displot(df_penguins, x='flipper_length_mm', kind='ecdf',hue='species')# ์ฝ”๋“œ3sns.displot(data=df_planets, x='distance', hue='method',hue_order=['Radial Velocity', 'Transit'],log_scale=True, element='step', fill=False,cumulative=True, stat='density', common_norm=False)# ์ฝ”๋“œ4: ์ƒ๋ณด ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜ ๊ทธ๋ฆฌ๊ธฐsns.ecdfplot(data=df_penguins, x='bill_length_mm',hue='species', complementary=True) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1627.3381294964029'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAECAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAH3gUGLnoFH/8QAGBAAAgMAAAAAAAAAAAAAAAAAARARIDH/2gAIAQEAAQUCtLOr/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAFBABAAAAAAAAAAAAAAAAAAAAMP/aAAgBAQAGPwJP/8QAGxAAAgIDAQAAAAAAAAAAAAAAAAEQESExUYH/2gAIAQEAAT8huMm8mxDo6G+X4KBR/9oADAMBAAIAAwAAABDAD4D/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAdEAEAAgICAwAAAAAAAAAAAAABABEhMUGBEGFx/9oACAEBAAE/EAVSly6W03PQE+yhFmIWy0TApvuCmVczAIVwMc9wk6Hj/9k=) ![ecdfplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜](https://www.snugarchive.com/static/738ac5f5bc0c1176739c6fcbb9503231/dafc5/bnd-ecdfplot-penguins.jpg) ![ecdfplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜](https://www.snugarchive.com/static/738ac5f5bc0c1176739c6fcbb9503231/dafc5/bnd-ecdfplot-penguins.jpg) ecdfplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜ ## ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ: ๊ด€๊ณ„ ### 1\) ์„ ๊ทธ๋ž˜ํ”„: lineplot() ์„ ๊ทธ๋ž˜ํ”„๋Š” ์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ฅธ ์—ฐ์†ํ˜• ๋ณ€์ˆ˜์˜ ๋ณ€๋™์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ์„ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `lineplot()`์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `relplot()` ํ•จ์ˆ˜์— `kind='line'` ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ `flights` ๋ฐ์ดํ„ฐ์—์„œ ์—ฐ๋ณ„(x์ถ•) ํ‰๊ท  ํƒ‘์Šน๊ฐ ์ˆ˜(y์ถ•)๋ฅผ ํ‘œํ˜„ํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ์Œ์˜์œผ๋กœ ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์€ 95% ์‹ ๋ขฐ๊ตฌ๊ฐ„์ž…๋‹ˆ๋‹ค. ``` pythonsns.lineplot(x='year', y='passengers',data=df_flights) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='888.5191347753744'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB3kBR/8QAFRABAQAAAAAAAAAAAAAAAAAAASD/2gAIAQEAAQUCK//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEABj8CX//EABoQAAMBAAMAAAAAAAAAAAAAAAABESExQXH/2gAIAQEAAT8h0qNzhVnpossRr6P/2gAMAwEAAgADAAAAEDAP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAGxABAAMBAQEBAAAAAAAAAAAAAQARITFhQXH/2gAIAQEAAT8Qp6H9hY8CUnwruRrYDW8S4hBbO7Gzon//2Q==) ![lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„1](https://www.snugarchive.com/static/9f8dbb06f9414b08b61ddd363ecd84c7/74065/bnd-lineplot-average-flights.jpg) ![lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„1](https://www.snugarchive.com/static/9f8dbb06f9414b08b61ddd363ecd84c7/74065/bnd-lineplot-average-flights.jpg) lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„1 ์—ฐ๋ณ„(x์ถ•) ์ด ํƒ‘์Šน๊ฐ์ˆ˜(y์ถ•)๋ฅผ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.lineplot(x='year', y='passengers',data=df_flights.groupby('year').sum())# ๋˜๋Š”sns.relplot(x='year', y='passengers', kind='line',data=df_flights.groupby('year').sum()) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='800.9367681498829'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB3rAB/8QAFRABAQAAAAAAAAAAAAAAAAAAASD/2gAIAQEAAQUCK//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEABj8CX//EABgQAQEBAQEAAAAAAAAAAAAAABEAIRBh/9oACAEBAAE/IddLUY9v/9oADAMBAAIAAwAAABAgz//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABwQAQACAgMBAAAAAAAAAAAAAAEAESFBMWGBof/aAAgBAQABPxBZr91KNBEpi7savm8wuqMdQW7eT//Z) ![lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„2](https://www.snugarchive.com/static/9e8ca519cd4c6cdcc0a5d3dacaee07b1/2fa52/bnd-lineplot-total-flights.jpg) ![lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„2](https://www.snugarchive.com/static/9e8ca519cd4c6cdcc0a5d3dacaee07b1/2fa52/bnd-lineplot-total-flights.jpg) lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„2 ์›”๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด `hue`์™€ `style` ์˜ต์…˜์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ‰์ƒ๊ณผ ์Šคํƒ€์ผ๋กœ ๊ตฌ๋ถ„ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.lineplot(x='year', y='passengers',hue='month', style='month', data=df_flights) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='799.0521327014218'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe5qAo//xAAWEAEBAQAAAAAAAAAAAAAAAAAQEUH/2gAIAQEAAQUC0j//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAaEAADAAMBAAAAAAAAAAAAAAAAAREQITFR/9oACAEBAAE/IVsVYdMXYR+n/9oADAMBAAIAAwAAABCwD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABsQAQACAgMAAAAAAAAAAAAAAAEAETFBIWGh/9oACAEBAAE/EHyJuNlAL0RvZUOy86gRBCqwRTPif//Z) ![lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„3](https://www.snugarchive.com/static/258308d45ac4536200dba7a7a1594e56/69826/bnd-lineplot-monthly-flights.jpg) ![lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„3](https://www.snugarchive.com/static/258308d45ac4536200dba7a7a1594e56/69826/bnd-lineplot-monthly-flights.jpg) lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„3 `pandas`์˜ `pivot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋งŒ๋“  ํ‘œ๋ฅผ ์ด์šฉํ•ด๋„ ์œ„ ๊ทธ๋ž˜ํ”„์™€ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `pivot()` ํ•จ์ˆ˜๋Š” `index`์™€ `columns` ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ „๋‹ฌํ•œ ์†์„ฑ์„ ๊ฐ๊ฐ ํ…Œ์ด๋ธ”์˜ ํ–‰๊ณผ ์—ด๋กœ ์ง€์ •ํ•ด์„œ `values` ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ „๋‹ฌํ•œ ์ˆ˜์น˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ``` pythonflights_pivot = df_flights.pivot(index='month', columns='year', values='passengers') # ๊ฐ ์—ฐ๋„์˜ ์›”๋ณ„ ํƒ‘์Šน๊ฐ ์ˆ˜flights_pivot# sns.lineplot(data=flights_pivot) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='927.5000000000001'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAdsguD//xAAWEAADAAAAAAAAAAAAAAAAAAAAASD/2gAIAQEAAQUClH//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAXEAADAQAAAAAAAAAAAAAAAAAAARBB/9oACAEBAAE/IYjXX//aAAwDAQACAAMAAAAQEA//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAcEAACAgIDAAAAAAAAAAAAAAAAARFxEDFBUfD/2gAIAQEAAT8Q03bJ9CJw7H0cvGjs/9k=) ![pandas์˜ pivot()ํ•จ์ˆ˜๋กœ ๋งŒ๋“  ์—ฐ๋ณ„, ์›”๋ณ„ ํƒ‘์Šน๊ฐ ํ‘œ](https://www.snugarchive.com/static/3835d9ca32566640fd4978951476cb21/aa8fe/bnd-lineplot-pivot-table-flights.jpg) ![pandas์˜ pivot()ํ•จ์ˆ˜๋กœ ๋งŒ๋“  ์—ฐ๋ณ„, ์›”๋ณ„ ํƒ‘์Šน๊ฐ ํ‘œ](https://www.snugarchive.com/static/3835d9ca32566640fd4978951476cb21/aa8fe/bnd-lineplot-pivot-table-flights.jpg) pandas์˜ pivot()ํ•จ์ˆ˜๋กœ ๋งŒ๋“  ์—ฐ๋ณ„, ์›”๋ณ„ ํƒ‘์Šน๊ฐ ํ‘œ ### 2\) ์‚ฐ์ ๋„: scatterplot() ์‚ฐ์ ๋„๋Š” ๋‘ ๋ฐ์ดํ„ฐ์˜ ๊ด€๊ณ„๋ฅผ ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ์‚ฐ์ ๋„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `scatterplot()` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `relplot()` ํ•จ์ˆ˜์— `kind='scatter'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.scatterplot(x='bill_length_mm', y='bill_depth_mm', data=df_penguins)# ๋˜๋Š”sns.relplot(df_penguins['bill_length_mm'], df_penguins['bill_depth_mm'], kind='scatter') ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='846'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAIBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHuKhKaX//EABkQAAEFAAAAAAAAAAAAAAAAAAABEBEhMf/aAAgBAQABBQKadNP/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAaEAADAAMBAAAAAAAAAAAAAAAAAREhMUFR/9oACAEBAAE/IXsSpdLFGTwyvpGf/9oADAMBAAIAAwAAABBvD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABoQAQADAQEBAAAAAAAAAAAAAAEAETEhUYH/2gAIAQEAAT8QTQLkF0Atub5LF8fZRAX6Yo6T/9k=) ![Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 2์ฐจ์› ์‚ฐ์ ๋„: ๊ธฐ๋ณธ](https://www.snugarchive.com/static/36a9d07659bf17410a8076c643f8c298/90062/bnd-scatterplot-basic-penguins.jpg) ![Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 2์ฐจ์› ์‚ฐ์ ๋„: ๊ธฐ๋ณธ](https://www.snugarchive.com/static/36a9d07659bf17410a8076c643f8c298/90062/bnd-scatterplot-basic-penguins.jpg) Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 2์ฐจ์› ์‚ฐ์ ๋„: ๊ธฐ๋ณธ ์ด๋ฒˆ์—๋Š” 3์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฐ์ ๋„๋กœ ์‹œ๊ฐํ™”ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋„ ์–ธ๊ธ‰ํ–ˆ๋“ฏ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ๋•Œ๋Š” `hue`, `col`, `size` ๋“ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ ์ง€์–ด ์ค„ ์ˆ˜ ์žˆ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‹œ๊ฐํ™”ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. > - style: ๋งˆ์ปค ๋ชจ์–‘ ์ž๋™ ์ง€์ • > - markers: ๋งˆ์ปค ๋ชจ์–‘ ์ˆ˜๋™ ์ง€์ • > - size: ๋งˆ์ปค ํฌ๊ธฐ ์ง€์ • > - sizes: ๋งˆ์ปค ํฌ๊ธฐ์˜ ๋ฒ”์œ„ ์ง€์ • > - legend='full': ๋ชจ๋“  ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ > - hue\_norm: ์ƒ‰์ƒ ๋ฒ”์œ„ ์ง€์ • ``` pythonsns.relplot(x='bill_length_mm', y='bill_depth_mm',hue='island',size='island',col='sex',palette=['gray', 'steelblue', 'g'], sizes=(75, 200),alpha=.5,kind='scatter',data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='519.159456118665'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB3KFUf//EABYQAQEBAAAAAAAAAAAAAAAAAAEAEP/aAAgBAQABBQKcZz//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAbEAEAAgIDAAAAAAAAAAAAAAABADEQEUFhof/aAAgBAQABPyF3fkSPUd8EsSmP/9oADAMBAAIAAwAAABCTz//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EAB0QAAICAQUAAAAAAAAAAAAAAAABETFBIVFxobH/2gAIAQEAAT8Qxm3iCpzYk067uRp6DXJ3D2Fk/9k=) ![Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 3์ฐจ์› ์‚ฐ์ ๋„](https://www.snugarchive.com/static/e57d3c92929e2e3e6bb5de22f5d8ad56/4cf21/bnd-scatterplot-options-penguins.jpg) ![Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 3์ฐจ์› ์‚ฐ์ ๋„](https://www.snugarchive.com/static/e57d3c92929e2e3e6bb5de22f5d8ad56/4cf21/bnd-scatterplot-options-penguins.jpg) Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 3์ฐจ์› ์‚ฐ์ ๋„ ### 3\) ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„: jointplot() ๊ฒฐํ•ฉ๋ถ„ํฌ(joint distribution)์™€ ์ฃผ๋ณ€๋ถ„ํฌ(marginal distribution)๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `jointplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `jointplot()`์€ ์ถ• ์ˆ˜์ค€(axes-level) ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ``` python# ์ฝ”๋“œ1: 2์ฐจ์› - ์‚ฐ์ ๋„ + ํžˆ์Šคํ† ๊ทธ๋žจsns.jointplot(x='bill_length_mm', y='bill_depth_mm', data=df_penguins)# ์ฝ”๋“œ2: 3์ฐจ์› - ์‚ฐ์ ๋„ + KDE ๋ฐ€๋„๊ณก์„ sns.jointplot(x='bill_length_mm', y='bill_depth_mm', hue='species',data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='621.1212516297262'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAdxoLJD/xAAWEAEBAQAAAAAAAAAAAAAAAAABEEH/2gAIAQEAAQUCS6z/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAZEAADAQEBAAAAAAAAAAAAAAAAARExIUH/2gAIAQEAAT8h6Wd8HYIeDIsP/9oADAMBAAIAAwAAABDwz//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAEDAQE/EIf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAcEAEAAgIDAQAAAAAAAAAAAAABABEhMUFRcbH/2gAIAQEAAT8QZQDVFWoabpQzjmXBvvE+maZr8n//2Q==) ![jointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„](https://www.snugarchive.com/static/40b6e4343097e26143a90194528a1ef0/250a0/bnd-jointplot-basic-penguins.jpg) ![jointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„](https://www.snugarchive.com/static/40b6e4343097e26143a90194528a1ef0/250a0/bnd-jointplot-basic-penguins.jpg) jointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„ `jointplot()` ํ•จ์ˆ˜์— `kind='kde'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‘ ๊ฐœ์˜ ๋ถ„ํฌ๋Š” KDE ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ์˜ˆ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` python# ์ฝ”๋“œ3 - 2์ฐจ์›sns.jointplot(x='bill_length_mm', y='bill_depth_mm',kind='hist', # ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ(์‚ฌ๊ฐํ˜•) ๊ทธ๋ฆฌ๊ธฐspace=0, # x์ถ•, y์ถ• ๊ณต๊ฐ„ 0์œผ๋กœ ๋งŒ๋“ค๊ธฐsize=5, ratio=4, # ํฌ๊ธฐ, ๋น„์œจ ์กฐ์ •ํ•˜๊ธฐdata=df_penguins)# ์ฝ”๋“œ4 - 2์ฐจ์›sns.jointplot(x='bill_length_mm', y='bill_depth_mm',kind='hex', # ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ(์œก๊ฐํ˜•) ๊ทธ๋ฆฌ๊ธฐspace=0, # x์ถ•, y์ถ• ๊ณต๊ฐ„ 0์œผ๋กœ ๋งŒ๋“ค๊ธฐsize=5, ratio=4, # ํฌ๊ธฐ, ๋น„์œจ ์กฐ์ •ํ•˜๊ธฐdata=df_penguins)# ์ฝ”๋“œ5 - 2์ฐจ์›sns.jointplot(x='bill_length_mm', y='bill_depth_mm',kind='reg', # ์„ ํ˜•ํšŒ๊ท€์„ , KDE ๋ฐ€๋„๊ณก์„  ์ถ”๊ฐ€space=0, # x์ถ•, y์ถ• ๊ณต๊ฐ„ 0์œผ๋กœ ๋งŒ๋“ค๊ธฐsize=5, ratio=4, # ํฌ๊ธฐ, ๋น„์œจ ์กฐ์ •ํ•˜๊ธฐdata=df_penguins)# ์ฝ”๋“œ6 - 3์ฐจ์›sns.jointplot(x='bill_length_mm', y='bill_depth_mm',kind='kde', # KDE ๋ฐ€๋„๋“ฑ๊ณ ์„ , KDE ๋ฐ€๋„๊ณก์„  ๊ทธ๋ฆฌ๊ธฐhue='species',space=0, # x์ถ•, y์ถ• ๊ณต๊ฐ„ 0์œผ๋กœ ๋งŒ๋“ค๊ธฐsize=5, ratio=4, # ํฌ๊ธฐ, ๋น„์œจ ์กฐ์ •ํ•˜๊ธฐdata=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1200'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAIBBf/EABYBAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAAB69VVyUmpBoP/xAAbEAABBAMAAAAAAAAAAAAAAAABAhAREgADIf/aAAgBAQABBQJQVfZNROE9Llv/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAYEAACAwAAAAAAAAAAAAAAAAAAIQERIP/aAAgBAQAGPwK4EPf/xAAbEAACAwEBAQAAAAAAAAAAAAAAAREhMWFBUf/aAAgBAQABPyGLwgR00/V9Kn1RFzA1YIeoYTo//9oADAMBAAIAAwAAABBHAAD/xAAXEQADAQAAAAAAAAAAAAAAAAABESAh/9oACAEDAQE/EENj/8QAFhEBAQEAAAAAAAAAAAAAAAAAASAx/9oACAECAQE/EFyP/8QAHBABAAMAAgMAAAAAAAAAAAAAAQARIWGBMUHh/9oACAEBAAE/EMioYa40/JTwBHToaTmFunqJdWE1XnuCFVSF8QWabFJMIzaf/9k=) ![jointplot() ํ•จ์ˆ˜์— kind ์˜ต์…˜์„ ๋”ํ•ด ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/77b8525f73df9eb4a625525a5ccc8065/5c4c2/bnd-jointplot-options1-penguins.jpg) ![jointplot() ํ•จ์ˆ˜์— kind ์˜ต์…˜์„ ๋”ํ•ด ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/77b8525f73df9eb4a625525a5ccc8065/5c4c2/bnd-jointplot-options1-penguins.jpg) jointplot() ํ•จ์ˆ˜์— kind ์˜ต์…˜์„ ๋”ํ•ด ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„ ์ด๋ฐ–์—๋„ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์–ด๋–ค ๊ทธ๋ž˜ํ”„๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์„ธ์š”. ``` python# ์ฝ”๋“œ1sns.jointplot(x='bill_length_mm', y='bill_depth_mm',marker='+', s=100, marginal_kws=dict(bins=25, fill=False),height=5, ratio=2, marginal_ticks=True, data=df_penguins)# ์ฝ”๋“œ2g = sns.jointplot(x='bill_length_mm', y='bill_depth_mm')g.plot_joint(sns.kdeplot, color='r', zorder=0, levels=6)g.plot_marginals(sns.rugplot, color='r', height=-.15, clip_on=False, data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='740.7106598984772'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAd1ILJD/xAAaEAEAAQUAAAAAAAAAAAAAAAABEQACECFB/9oACAEBAAEFAtzcSFdcf//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEABj8CX//EABwQAAICAgMAAAAAAAAAAAAAAAABESEQUWFxkf/aAAgBAQABPyHwKiE+yVzuh8sEz//aAAwDAQACAAMAAAAQ2C//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAgEBPxCH/8QAGhABAAMAAwAAAAAAAAAAAAAAAQARITFBUf/aAAgBAQABPxBpk4TQAsajza6PI3sjbC04j1rez//Z) ![jointplot() ํ•จ์ˆ˜์™€ ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„ ๊ฒน์ณ ๊ทธ๋ฆฌ๊ธฐ](https://www.snugarchive.com/static/63c3cdb64ef062bce6fc1f44c1aa1324/1b373/bnd-jointplot-options2-penguins.jpg) ![jointplot() ํ•จ์ˆ˜์™€ ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„ ๊ฒน์ณ ๊ทธ๋ฆฌ๊ธฐ](https://www.snugarchive.com/static/63c3cdb64ef062bce6fc1f44c1aa1324/1b373/bnd-jointplot-options2-penguins.jpg) jointplot() ํ•จ์ˆ˜์™€ ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„ ๊ฒน์ณ ๊ทธ๋ฆฌ๊ธฐ ๋” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๊ฒฐํ•ฉ๋ถ„ํฌ ๋ฐ ์ฃผ๋ณ€๋ถ„ํฌ๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€(figure-level) ์ธํ„ฐํŽ˜์ด์Šค์ธ `JointGrid`๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ `JointGrid`๋ฅผ ์ด์šฉํ•ด ํžˆ์Šคํ† ๊ทธ๋žจ๊ณผ ๋ฐ•์Šค๋ถ„ํฌ๋ฅผ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์‹œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ``` python# ์ฝ”๋“œ1g = sns.JointGrid(data=df_penguins, x='bill_length_mm', y='bill_depth_mm')g.plot_joint(sns.scatterplot, s=100, alpha=.5, edgecolor='.2', linewidth=.5)g.plot_marginals(sns.histplot, kde=True)# ์ฝ”๋“œ2g = sns.JointGrid(data=df_penguins, x='bill_length_mm', y='bill_depth_mm')g.plot(sns.regplot, sns.boxplot)g.refline(x=45, y=16) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='731.0479921645446'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHt2bQpf//EABoQAAEFAQAAAAAAAAAAAAAAAAEAEBESMUH/2gAIAQEAAQUCM2OBdb//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAaEAADAQADAAAAAAAAAAAAAAAAAREhQWGB/9oACAEBAAE/IU0gra1JlbfB9mTOSH//2gAMAwEAAgADAAAAEC8P/8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQMBAT8Qh//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EAB4QAQACAgEFAAAAAAAAAAAAAAEAESExQVGBkaHw/9oACAEBAAE/EKmhKaaybgJqFE5ieE3p0+uBAeyVRb5Qobe7P//Z) ![JointGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/5b5a293a01fc9727970b532f796ad05a/c59ea/bnd-jointgrid-penguins.jpg) ![JointGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/5b5a293a01fc9727970b532f796ad05a/c59ea/bnd-jointgrid-penguins.jpg) JointGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„ ### 4\) ์‚ฐ์ ๋„ ํ–‰๋ ฌ: pairplot() ์‚ฐ์ ๋„ ํ–‰๋ ฌ(scatter plot matrix)์€ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋“ค์˜ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์ด์› ์กฐํ•ฉ์„ ํ–‰๋ ฌ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `pairplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ์…‹์˜ ๋ชจ๋“  ์ˆซ์žํ˜• ๋ณ€์ˆ˜ ์Œ์— ๋Œ€ํ•ด ์‚ฐ์ ๋„๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ๋Œ€๊ฐ์„ ์—๋Š” ๊ฐ ๋ณ€์ˆ˜์˜ ๋ถ„ํฌ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์ด๋‚˜ KDE ํ”Œ๋กฏ์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ``` python# ์ฝ”๋“œ1sns.pairplot(df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='990.5053598774886'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAARABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAECAwX/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/2gAMAwEAAhADEAAAAe1Fs7ncTUVDQH//xAAaEAEAAQUAAAAAAAAAAAAAAAABMQAQETJB/9oACAEBAAEFAnYchHWiG/8A/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAGhAAAgIDAAAAAAAAAAAAAAAAESEAARAgMf/aAAgBAQAGPwLqiOSbAi0//8QAGhABAAMBAQEAAAAAAAAAAAAAAQARMSFBcf/aAAgBAQABPyG5axVuUKlZyYR+4k8TrkYlxNT2GT//2gAMAwEAAgADAAAAEBcHAP/EABURAQEAAAAAAAAAAAAAAAAAAAEg/9oACAEDAQE/EGP/xAAVEQEBAAAAAAAAAAAAAAAAAAABIP/aAAgBAgEBPxAj/8QAGxAAAgMBAQEAAAAAAAAAAAAAAREAITFxQdH/2gAIAQEAAT8QJkKUVdcRKWsZ+9iUEkLTsRgQdGsEK1iU37fYTRmKMy4YM8Mzn//Z) ![pairplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/cde593566253508a6bd4ff2d89f52edd/fb1f9/bnd-pairplot-basic1-penguins.jpg) ![pairplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/cde593566253508a6bd4ff2d89f52edd/fb1f9/bnd-pairplot-basic1-penguins.jpg) pairplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ `corner=True` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์‚ฐ์ ๋„ ํ–‰๋ ฌ์˜ ์ ˆ๋ฐ˜๋งŒ ๊ทธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythonsns.pairplot(df_penguins, corner=True) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='943.4782608695651'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAQABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAIBAwQF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB7bRWmgUH/8QAGhABAAEFAAAAAAAAAAAAAAAAAQACESExMv/aAAgBAQABBQJ6pbkdwyf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAYEAACAwAAAAAAAAAAAAAAAAAQEQABIf/aAAgBAQAGPwKoy9H/xAAdEAEAAwABBQAAAAAAAAAAAAABABExIRBRYXGx/9oACAEBAAE/Ib2Wgb5gkLPfTHiYhwPHeKh+z//aAAwDAQACAAMAAAAQ0M//xAAWEQADAAAAAAAAAAAAAAAAAAABEDH/2gAIAQMBAT8QhX//xAAVEQEBAAAAAAAAAAAAAAAAAAAQQf/aAAgBAgEBPxCH/8QAHBABAAICAwEAAAAAAAAAAAAAAREhAEEQMWGR/9oACAEBAAE/EKVKkBJTeAwDoQ/OBuPs11ipBta14yERJJgQmf/Z) ![์ ˆ๋ฐ˜ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/d8188357b126392ce91224a24b10d65a/3764f/bnd-pairplot-basic1-half-penguins.jpg) ![์ ˆ๋ฐ˜ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/d8188357b126392ce91224a24b10d65a/3764f/bnd-pairplot-basic1-half-penguins.jpg) ์ ˆ๋ฐ˜ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ ์›ํ•˜๋Š” ํŠน์ • ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ด์„œ ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythonsns.pairplot(df_penguins,x_vars=['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm'],y_vars=['bill_length_mm', 'bill_depth_mm']) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='624.4247787610619'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAEDBf/EABQBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAdlVmlhA/wD/xAAaEAACAgMAAAAAAAAAAAAAAAAAAQIRECEx/9oACAEBAAEFAp2XseFz/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGBAAAgMAAAAAAAAAAAAAAAAAAREAAiD/2gAIAQEABj8CCKlkc//EABgQAQADAQAAAAAAAAAAAAAAAAEAEUEx/9oACAEBAAE/IbnSLlUFU7WQ4bMxAtAGcJ//2gAMAwEAAgADAAAAEBAP/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAh/9oACAEDAQE/EE2f/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAh/9oACAECAQE/EByf/8QAHRAAAgIBBQAAAAAAAAAAAAAAAREAITFBUXGh8P/aAAgBAQABPxAWEhqNjaA8ogADsdPVFqKKi25jyjeAbICJnWn/2Q==) ![ํŠน์ • 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/977703badefe0f411b670be1009bb596/311a0/bnd-pairplot-basic2-penguins.jpg) ![ํŠน์ • 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/977703badefe0f411b670be1009bb596/311a0/bnd-pairplot-basic2-penguins.jpg) ํŠน์ • 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ ``` pythonsns.pairplot(df_penguins, kind='hist',height=2) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1158.3815028901734'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAATABQDASIAAhEBAxEB/8QAGAABAQADAAAAAAAAAAAAAAAAAAIBAwX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAevNyhsUKxBbYr//xAAaEAEAAwADAAAAAAAAAAAAAAABAAIyAyIx/9oACAEBAAEFAl7k48uiUy+yoB//xAAWEQADAAAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8BFf/EABYRAAMAAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPwEd/8QAHBAAAgICAwAAAAAAAAAAAAAAAAECESExECLR/9oACAEBAAY/AqvBHs2j02Rpo3fOD//EABoQAQADAQEBAAAAAAAAAAAAAAEAESExQVH/2gAIAQEAAT8hYNghvIzjY37Oeq++os3nciTRLcnB6bcHftQA4StCif/aAAwDAQACAAMAAAAQjz88/8QAGREAAQUAAAAAAAAAAAAAAAAAMQABEGHw/9oACAEDAQE/EHOpBP8A/8QAGREAAQUAAAAAAAAAAAAAAAAAMQABEGHw/9oACAECAQE/EGGtFP8A/8QAHhABAAEEAwEBAAAAAAAAAAAAAREAITFRQWFxwYH/2gAIAQEAAT8QsmosHueqgScoJZTYX5zSHN13JrryihiQ45dvn2jy4BhC/mzlaGAzDh80UQABYmL0oQEEEEZzUB00wWr/2Q==) ![2์ฐจ์› ํžˆ์Šคํ† ๊ทธ๋žจ ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/7f1d516ac141670ffa0fc087ab60a4bf/63d0d/bnd-pairplot-option-hist-penguins.jpg) ![2์ฐจ์› ํžˆ์Šคํ† ๊ทธ๋žจ ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/7f1d516ac141670ffa0fc087ab60a4bf/63d0d/bnd-pairplot-option-hist-penguins.jpg) 2์ฐจ์› ํžˆ์Šคํ† ๊ทธ๋žจ ์‚ฐ์ ๋„ ํ–‰๋ ฌ ``` pythonsns.pairplot(df_penguins, kind='kde') # KDE ๊ณก์„  ๊ทธ๋ฆฌ๊ธฐ ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1157.142857142857'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAATABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAIBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHtiymomBbB/8QAGRAAAgMBAAAAAAAAAAAAAAAAAAIBMUEQ/9oACAEBAAEFAtFrkGi1/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAGBAAAwEBAAAAAAAAAAAAAAAAAAEQITH/2gAIAQEABj8CFs6Kqf/EAB4QAAIBBAMBAAAAAAAAAAAAAAABIRExQWEQUXHR/9oACAEBAAE/IetRbPpsb9MyFGBZLqOIluB//9oADAMBAAIAAwAAABCzFzz/xAAWEQADAAAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8QFf/EABYRAAMAAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxAd/8QAHBABAQACAwEBAAAAAAAAAAAAAREAITFBcWGh/9oACAEBAAE/EKVUo9fcXdhGa/WKl5G3llbhI679xoFY61q+Ze9DunGE0AplqIaeDOb3P//Z) ![2์ฐจ์› kde ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/6cf8b80965a6265a9a70eeb4af8173ae/879c9/bnd-pairplot-option-kde-penguins.jpg) ![2์ฐจ์› kde ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/6cf8b80965a6265a9a70eeb4af8173ae/879c9/bnd-pairplot-option-kde-penguins.jpg) 2์ฐจ์› kde ์‚ฐ์ ๋„ ํ–‰๋ ฌ ``` pythonsns.pairplot(df_penguins,plot_kws=dict(marker='+', linewidth=1), # ๋น„๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์— ์žˆ๋Š” ๊ทธ๋ž˜ํ”„ ์˜ต์…˜diag_kws=dict(fill=False)) # ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์— ์žˆ๋Š” ๊ทธ๋ž˜ํ”„ ์˜ต์…˜ ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1082.882882882883'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAASABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHuwTSlmQ0D/8QAGBAAAgMAAAAAAAAAAAAAAAAAAAEQIEH/2gAIAQEAAQUChG0R/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAFBABAAAAAAAAAAAAAAAAAAAAMP/aAAgBAQAGPwIf/8QAHBAAAgICAwAAAAAAAAAAAAAAAAERMRAhQWGB/9oACAEBAAE/IZ20esociexUO8UP/9oADAMBAAIAAwAAABBfBzz/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAaEAEAAwEBAQAAAAAAAAAAAAABABEhMUFh/9oACAEBAAE/EHqIRUrbMo6zjq/WWIKvcIYACp2oQAN/YTz5ALMOQAaJ/9k=) ![์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1](https://www.snugarchive.com/static/a960a8be64b23f40fed900c98b3d2551/2aa3c/bnd-pairplot-cutomized1-penguins.jpg) ![์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1](https://www.snugarchive.com/static/a960a8be64b23f40fed900c98b3d2551/2aa3c/bnd-pairplot-cutomized1-penguins.jpg) ์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1 ``` pythong = sns.pairplot(df_penguins, diag_kind='kde') # ๋Œ€๊ฐ์„  ๊ทธ๋ž˜ํ”„๋Š” KDE ํ•จ์ˆ˜g.map_lower(sns.kdeplot, levels=4, color='.2') # KDE ๊ณก์„  ์ˆ˜์ค€๊ณผ ์ƒ‰ ์ง€์ •ํ•˜๊ธฐ ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1007.3863636363637'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAARABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAEDAgX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB9yImgWcBoD//xAAZEAADAAMAAAAAAAAAAAAAAAAAATEQQUL/2gAIAQEAAQUC2KdIUeFP/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAFRABAQAAAAAAAAAAAAAAAAAAIEH/2gAIAQEABj8CFP8A/8QAGxAAAwEBAAMAAAAAAAAAAAAAAAExIUERUYH/2gAIAQEAAT8hbzRc1wlfo4o2LY6Q8FI9Ej//2gAMAwEAAgADAAAAELjIAP/EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8QH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8QH//EAB4QAAIDAAIDAQAAAAAAAAAAAAExABEhEGFBUXGx/9oACAEBAAE/EKhIb2sUI1v1Rpnue0WNp3OnAl5lIQwi+yuwkUzxj+Dxv//Z) ![์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2](https://www.snugarchive.com/static/e14590a9331c52f9a57a1a320b8caa4f/f1269/bnd-pairplot-cutomized2-penguins.jpg) ![์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2](https://www.snugarchive.com/static/e14590a9331c52f9a57a1a320b8caa4f/f1269/bnd-pairplot-cutomized2-penguins.jpg) ์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2 3์ฐจ์› ์ด์ƒ์˜ ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆฌ๋ ค๋ฉด `hue` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.pairplot(df_penguins, hue='species',markers=['o', 's', 'D'], # ๋งˆ์ปค ์ง€์ •diag_kind='hist') # ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์— ๋“ค์–ด๊ฐˆ ๊ทธ๋ž˜ํ”„: ํžˆ์Šคํ† ๊ทธ๋žจ ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1037.3401534526854'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAARABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAECAwX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB7KayboW1qGgP/8QAFxABAQEBAAAAAAAAAAAAAAAAARAAMf/aAAgBAQABBQJ7WMN//8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAGhAAAgIDAAAAAAAAAAAAAAAAASEAERAgMf/aAAgBAQAGPwItTpzdrX//xAAbEAEAAwEAAwAAAAAAAAAAAAABABExIUFRcf/aAAgBAQABPyFUqikuyzDkMnl15FSp8d5CqKyanv5ME//aAAwDAQACAAMAAAAQ/M88/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAf/8QAHBABAAIDAQEBAAAAAAAAAAAAAQARITFBcWGh/9oACAEBAAE/EE5FVazsmyAmx06ytK1XYo24PAZlMInhX32FtVRipv8AI7h+Kf/Z) ![3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1](https://www.snugarchive.com/static/5900d273ffb4e7146582a2ae0fce24c4/8e044/bnd-pairplot-option-hue-penguins.jpg) ![3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1](https://www.snugarchive.com/static/5900d273ffb4e7146582a2ae0fce24c4/8e044/bnd-pairplot-option-hue-penguins.jpg) 3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1 ``` pythonsns.pairplot(df_penguins,hue='species',size=2, aspect=1.8,plot_kws=dict(linewidth=0.5, alpha=0.3),diag_kind='kde',diag_kws=dict(shade=True)) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='620.4878048780488'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe5UNoP/xAAWEAADAAAAAAAAAAAAAAAAAAABIDH/2gAIAQEAAQUCUT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAbEAACAQUAAAAAAAAAAAAAAAAAAUEQMVFx0f/aAAgBAQABPyGGcpkc6LB//9oADAMBAAIAAwAAABCQz//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABsQAQADAQADAAAAAAAAAAAAAAEAESFBMXGh/9oACAEBAAE/EKbDynYuo3BdGRN9YTHI+Sf/2Q==) ![3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2](https://www.snugarchive.com/static/8674d5ac10472051bbf8a2240cdebfac/f4c8a/bnd-pairplot-option-hue2-penguins.jpg) ![3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2](https://www.snugarchive.com/static/8674d5ac10472051bbf8a2240cdebfac/f4c8a/bnd-pairplot-option-hue2-penguins.jpg) 3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2 ๋” ์„ธ๋ฐ€ํ•œ ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€ ์ธํ„ฐํŽ˜์ด์Šค์ธ `PairGrid` ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `PairGrid` ํด๋ž˜์Šค๋กœ๋Š” ๊ทธ๋ฆฌ๊ณ  ์‹ถ์€ ๊ทธ๋ž˜ํ”„๋ฅผ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ `kdeplot()`๊ณผ `histplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ๊ณผ KDE ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. ``` pythong = sns.PairGrid(df_penguins)g.map_upper(sns.histplot)g.map_lower(sns.kdeplot, fill=True)g.map_diag(sns.histplot, kde=True) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1146.4864864864865'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAATABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAAB7U1HJsMyTRX/xAAbEAABBAMAAAAAAAAAAAAAAAABAAIRQSIxMv/aAAgBAQABBQKcgmc2ENWmiB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAbEAABBQEBAAAAAAAAAAAAAAAAAQIQETFBIv/aAAgBAQAGPwKr4N9GqpvBuGwkf//EAB4QAQACAwACAwAAAAAAAAAAAAEAESExQVFhcZHB/9oACAEBAAE/IdtnWppkffmV+wuXlZrj9iQyQ+Oy+1viIGJyADUIFBif/9oADAMBAAIAAwAAABBP8AD/xAAYEQACAwAAAAAAAAAAAAAAAAAAARAhQf/aAAgBAwEBPxDRKp//xAAZEQACAwEAAAAAAAAAAAAAAAAAARARIUH/2gAIAQIBAT8Q4N6XH//EABwQAQEBAQADAQEAAAAAAAAAAAERIQAxQXFhgf/aAAgBAQABPxDUsVGPfm8QGOMBn29k2Vqxvz1ypAo43zvCoMIuPxDjFBu0Q/nIUBfKbxAABCEheglFsr3/2Q==) ![PairGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/b4976d07e910ebcec934c66fa0f78830/57fc3/bnd-pairgrid-penguins.jpg) ![PairGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/b4976d07e910ebcec934c66fa0f78830/57fc3/bnd-pairgrid-penguins.jpg) PairGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ์‚ฐ์ ๋„ ํ–‰๋ ฌ ### 5\) ์ƒ๊ด€ํ–‰๋ ฌ: heatmap(), clustermap() #### heatmap ํžˆํŠธ๋งต(heatmap)์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ‰์ƒ์˜ ๊ฐ•๋„๋กœ ํ‘œํ˜„ํ•˜๋Š” 2์ฐจ์› ๊ทธ๋ž˜ํ”ฝ ํ‘œํ˜„ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํžˆํŠธ๋งต์€ ๋ณ€๋Ÿ‰ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด ์ข‹์Šต๋‹ˆ๋‹ค. ํžˆํŠธ๋งต์œผ๋กœ๋Š” ๋‹ค์–‘ํ•œ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ๋Š” ์ƒ๊ด€ํ–‰๋ ฌ์„ ํ‘œํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ``` pythondf_wines = df_wines.sample(frac=1, random_state=7).reset_index(drop=True) # ์ƒ˜ํ”Œ ๋ฌด์ž‘์œ„๋กœ ๋งŒ๋“ค๊ธฐcorr = df_wines.corr() # ์ƒ๊ด€ํ–‰๋ ฌ ํ‘œ ๋งŒ๋“ค๊ธฐsns.heatmap(round(corr,1),annot=True, # ์ƒ๊ด€๊ณ„์ˆ˜ ํ‘œ์‹œfmt='.1f', # ์ƒ๊ด€๊ณ„์ˆ˜ ์†Œ์ˆ˜์  ์ž๋ฆฌcmap='coolwarm', # ์ปฌ๋Ÿฌ๋งต ์ƒ‰์ƒ ํŒ”๋ ˆํŠธvmax=1.0, # ์ƒ๊ด€๊ณ„์ˆ˜ ์ตœ๋Œ“๊ฐ’vmin=-1.0, # ์ƒ๊ด€๊ณ„์ˆ˜ ์ตœ์†Ÿ๊ฐ’linecolor='white', # ์…€ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒlinewidths=.05) # ์…€ ๊ฐ„๊ฒฉsns.set(rc={'figure.figsize':(10,7)}) # ๊ทธ๋ž˜ํ”„ ํฌ๊ธฐ ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='956.25'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAQABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIEAwX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB7M1uSsMJ/8QAHBAAAQMFAAAAAAAAAAAAAAAAAQACEQMSEyEx/9oACAEBAAEFAqiu23hErGCg2B//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwEn/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGRAAAQUAAAAAAAAAAAAAAAAAAAEQESEx/9oACAEBAAY/AiFezT//xAAeEAEAAgEEAwAAAAAAAAAAAAABABExECFBUWFxsf/aAAgBAQABPyEWHHmCsDf2Y3vTuYU9zaLM/9oADAMBAAIAAwAAABAEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAESH/2gAIAQMBAT8QRmMvb//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EAB0QAQEAAgEFAAAAAAAAAAAAAAERACFxMUFRgdH/2gAIAQEAAT8QlhUOh1GZMYCiOuHzBZIgU9YYBXTcMRJudmS+QZ4z/9k=) ![heatmap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ์ƒ๊ด€ํ–‰๋ ฌ ํžˆํŠธ๋งต](https://www.snugarchive.com/static/732f37ae3e22eedbe5cbe71e58537533/c46a0/bnd-heatmap-basic-wines.png) ![heatmap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ์ƒ๊ด€ํ–‰๋ ฌ ํžˆํŠธ๋งต](https://www.snugarchive.com/static/732f37ae3e22eedbe5cbe71e58537533/c46a0/bnd-heatmap-basic-wines.png) heatmap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ์ƒ๊ด€ํ–‰๋ ฌ ํžˆํŠธ๋งต #### clustermap ํด๋Ÿฌ์Šคํ„ฐ๋งต(clustermap)์€ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ํžˆํŠธ๋งต๊ณผ ๊ณ„์ธต์  ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ๊ฒฐํ•ฉํ•œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋งต์„ ๊ทธ๋ฆฌ๋ ค๋ฉด `clustermap()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `clustermap()` ํ•จ์ˆ˜์—๋Š” `heatmap()` ํ•จ์ˆ˜์™€ ๋‹ฌ๋ฆฌ `standard_sacle` ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ์–ด ํด๋Ÿฌ์Šคํ„ฐ๋งต์˜ ๋ฒ”์œ„๋ฅผ 0~1๋กœ ์ •๊ทœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythoncorr = df_wines.corr() # ์ƒ๊ด€ํ–‰๋ ฌ ํ‘œ ๋งŒ๋“ค๊ธฐsns.clustermap(corr,cmap='coolwarm', # ์ปฌ๋Ÿฌ๋งต ์ƒ‰์ƒ ํŒ”๋ ˆํŠธstandard_scale=1) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='1198.3310152990264'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAEDBQL/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAv/aAAwDAQACEAMQAAAB1a+q6aAkBIP/xAAbEAABBAMAAAAAAAAAAAAAAAACAAEDERATIP/aAAgBAQABBQI5NaaY3xMNkw0XH//EABURAQEAAAAAAAAAAAAAAAAAACAx/9oACAEDAQE/AaP/xAAVEQEBAAAAAAAAAAAAAAAAAAAgMf/aAAgBAgEBPwGD/8QAGxAAAgEFAAAAAAAAAAAAAAAAAAECEBEgMmH/2gAIAQEABj8CSNaLheOP/8QAGRABAQADAQAAAAAAAAAAAAAAAREQIUEA/9oACAEBAAE/IWkiz0gnbx5i1j1fagVXY5DH/9oADAMBAAIAAwAAABAPCAD/xAAXEQEAAwAAAAAAAAAAAAAAAAABESAh/9oACAEDAQE/EAJC7T//xAAXEQEBAQEAAAAAAAAAAAAAAAABESAh/9oACAECAQE/EOAZcf/EAB8QAQACAgAHAAAAAAAAAAAAAAEAESExEEFRcYHB0f/aAAgBAQABPxAASk0D1xXyOXSFaLc7g2RSHwQ1V357Q8yMFMXmmse4BRgiDuBWuH//2Q==) ![clustermap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ƒ๊ด€ํ–‰๋ ฌ ํด๋Ÿฌ์Šคํ„ฐ๋งต](https://www.snugarchive.com/static/c46bbd37bff118399dee83e5fe2d6e37/43ae9/bnd-clustermap-basic-wines.jpg) ![clustermap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ƒ๊ด€ํ–‰๋ ฌ ํด๋Ÿฌ์Šคํ„ฐ๋งต](https://www.snugarchive.com/static/c46bbd37bff118399dee83e5fe2d6e37/43ae9/bnd-clustermap-basic-wines.jpg) clustermap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ƒ๊ด€ํ–‰๋ ฌ ํด๋Ÿฌ์Šคํ„ฐ๋งต ### 6\) ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ Seaborn์œผ๋กœ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `regplot()` ๋˜๋Š” `lmplot()`์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋จผ์ € `regplot()` ์‚ฌ์šฉ๋ฒ•๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #### regplot `regplot()` ํ•จ์ˆ˜๋Š” ์‚ฐ์ ๋„์™€ ์„ ํ˜• ํšŒ๊ท€์„ (linear regression line)์„ ํ•จ๊ป˜ ๊ทธ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์„ ํ˜• ํšŒ๊ท€์„  ์ฃผ๋ณ€ ์Œ์˜์€ ์‹ ๋ขฐ๊ตฌ๊ฐ„(95%)์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ``` pythonsns.regplot(x='bill_length_mm', y='bill_depth_mm',data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='824.2718446601942'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMBAgX/xAAUAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHaGLS5IP8A/8QAGRAAAQUAAAAAAAAAAAAAAAAAAQAQESEy/9oACAEBAAEFAialxpf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAVEAEBAAAAAAAAAAAAAAAAAAAgMf/aAAgBAQAGPwKL/8QAGxAAAgIDAQAAAAAAAAAAAAAAAAERYSFBUXH/2gAIAQEAAT8hepKRqnh2eEcEWW7IdH//2gAMAwEAAgADAAAAEPAP/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8QRn//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxASf//EABoQAQEBAAMBAAAAAAAAAAAAAAERADFBYYH/2gAIAQEAAT8QpE1kMIlGSx15lGKE81HT7nKVfa4yzn//2Q==) ![regplot()์œผ๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/2e81aea63e6c4c03a4d3173486ecfe17/5f636/bnd-regplot-basic-penguins.jpg) ![regplot()์œผ๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/2e81aea63e6c4c03a4d3173486ecfe17/5f636/bnd-regplot-basic-penguins.jpg) regplot()์œผ๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ ์—ฌ๊ธฐ์— `lowess=True` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ํšŒ๊ท€์„ ์„ ์„ ํ˜•์ด ์•„๋‹ˆ๋ผ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์— ๊ฐ€์ค‘์น˜๋ฅผ ๋†’์ด๋Š” ๊ตญ์†Œ ํšŒ๊ท€(local regression) ๊ธฐ๋ฒ•์œผ๋กœ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. `lowess`๋Š” `locally weighted robust scatterplot smoothing`์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. ``` pythonsns.regplot(x='bill_length_mm', y='bill_depth_mm',lowess=True,data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='824.0963855421686'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMBAgX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB24YtLgL/AP/EABkQAAEFAAAAAAAAAAAAAAAAAAEAEBEhMv/aAAgBAQABBQImpcaX/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFBABAAAAAAAAAAAAAAAAAAAAIP/aAAgBAQAGPwJf/8QAGhABAQEAAwEAAAAAAAAAAAAAAQARIUFRYf/aAAgBAQABPyFzQbD4MxmzyA67kfl//9oADAMBAAIAAwAAABBoz//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/EEZ//8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8QEn//xAAbEAEAAgIDAAAAAAAAAAAAAAABABEhcTFRYf/aAAgBAQABPxBClLQEQMFSxnLrUsLhmIWL7cGol0n/2Q==) ![๊ตญ์†Œ ํšŒ๊ท€ ๊ธฐ๋ฒ•์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/0c45e8aefae5adf5bda7f442d4bd4ea4/11810/bnd-regplot-options-lowess-penguins.jpg) ![๊ตญ์†Œ ํšŒ๊ท€ ๊ธฐ๋ฒ•์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/0c45e8aefae5adf5bda7f442d4bd4ea4/11810/bnd-regplot-options-lowess-penguins.jpg) ๊ตญ์†Œ ํšŒ๊ท€ ๊ธฐ๋ฒ•์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ > - scatter\_kws: ์  ์ƒ‰์ƒ(facecolor, fc), ์  ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ(edgecolor, ec), ํฌ๊ธฐ(size, s), ํˆฌ๋ช…๋„ ์ง€์ • > - color: ์„  ์ƒ‰์ƒ ์ง€์ • > - line\_kws: ์„  ๊ตต๊ธฐ(linewidth, lw), ์„  ์Šคํƒ€์ผ(line style, ls), ํˆฌ๋ช…๋„ ์ง€์ • > - ci: ์‹ ๋ขฐ๊ตฌ๊ฐ„ ์ง€์ •(๊ธฐ๋ณธ๊ฐ’: 95) ``` pythonsns.regplot(x='bill_length_mm', y='bill_depth_mm',scatter_kws={'fc':'gray', 'ec':'gray', 's':50, 'alpha':0.3},color='r',line_kws={'lw':1.5, 'ls':'--','alpha':0.5},ci=90,data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='814.4927536231885'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAdt1BQw//8QAGBAAAgMAAAAAAAAAAAAAAAAAABEBEDH/2gAIAQEAAQUCY7jT/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFBABAAAAAAAAAAAAAAAAAAAAIP/aAAgBAQAGPwJf/8QAGhAAAwADAQAAAAAAAAAAAAAAAAERIUFhUf/aAAgBAQABPyFtKlTS4Hwnhlexp8P/2gAMAwEAAgADAAAAELAP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAHBABAQEAAQUAAAAAAAAAAAAAAREAMUFhcYGR/9oACAEBAAE/EOZJfmIgCeaZC2J21HR70JHk5Lzn/9k=) ![๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/e5e7ee37e9a63d14e8590027c2787c7e/570db/bnd-regplot-options-penguins.jpg) ![๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/e5e7ee37e9a63d14e8590027c2787c7e/570db/bnd-regplot-options-penguins.jpg) ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ #### lmplot `lmplot()` ์—ญ์‹œ `regplot()`๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, `lmplot()`์€ ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€(figure-level) ํ•จ์ˆ˜๋กœ `FacetGrid`๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. `lmplot()`์€ ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€ ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— `regplot()`์—์„œ์™€ ๋‹ฌ๋ฆฌ `hue` ๋˜๋Š” `col`์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` python# ์ฝ”๋“œ1sns.lmplot(x='bill_length_mm', y='bill_depth_mm',hue='species',data=df_penguins)# ์ฝ”๋“œ2sns.lmplot(x='bill_length_mm', y='bill_depth_mm',col='species',data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='849.8360655737705'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAIBBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe5TCgf/xAAVEAEBAAAAAAAAAAAAAAAAAAAgQf/aAAgBAQABBQKn/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFBABAAAAAAAAAAAAAAAAAAAAIP/aAAgBAQAGPwJf/8QAGhAAAgIDAAAAAAAAAAAAAAAAAAEhMRARQf/aAAgBAQABPyGehqMKzdio/9oADAMBAAIAAwAAABCQD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EAB0QAQACAgIDAAAAAAAAAAAAAAEAIRFBMVFxgfD/2gAIAQEAAT8QwbpHXUQrl9sw/MohVXvUoIvzEozzP//Z) ![lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„1](https://www.snugarchive.com/static/b5c00c089b557b71dc0c4909f1c8a6a7/09894/bnd-lmplot-basic-penguins.jpg) ![lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„1](https://www.snugarchive.com/static/b5c00c089b557b71dc0c4909f1c8a6a7/09894/bnd-lmplot-basic-penguins.jpg) lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„1 ์ „์ฒด ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ๋ฐฐ๊ฒฝ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. > - truncate=False: ํšŒ๊ท€์„  x์ถ• ๋๊นŒ์ง€ ํ‘œํ˜„ํ•˜์ง€ ์•Š๊ธฐ > - facet\_kws=dict(sharex=False, sharey=False): x์ถ•, y์ถ• ๊ณต์œ ํ•˜์ง€ ์•Š๊ธฐ > - line\_kws: ํšŒ๊ท€์„  ์Šคํƒ€์ผ ์ง€์ •ํ•˜๊ธฐ > - scatter\_kws: ์‚ฐ์ ๋„ ์  ์Šคํƒ€์ผ ์ง€์ •ํ•˜๊ธฐ ``` pythong = sns.lmplot(x='bill_length_mm', y='bill_depth_mm',col='species', row='sex',height=4,truncate=False,line_kws={'color':'steelblue','linestyle':'--' },data=df_penguins)axes = g.axes # FacetGrid์—์„œ AxesSubplots์„ ์ถ”์ถœfor ax in axes.ravel(): # AxesSubplots์„ ์ˆœํšŒํ•˜์—ฌ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ๊ฒฝ์œผ๋กœ ํ‘œํ˜„sns.regplot(x='bill_length_mm', y='bill_depth_mm',fit_reg=False, # ์ „์ฒด ํšŒ๊ท€์„  ์ˆจ๊ธฐ๊ธฐscatter_kws={'fc':'gray', 'ec':'none', 's':30, 'alpha':0.3},ax=ax,data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='769.1959229898075'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAQAF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB3YRiP//EABUQAQEAAAAAAAAAAAAAAAAAABBB/9oACAEBAAEFAmn/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAYEAADAQEAAAAAAAAAAAAAAAAAAREx8P/aAAgBAQABPyGO6R8hWEQS0WH/2gAMAwEAAgADAAAAECPP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAHBABAAMAAgMAAAAAAAAAAAAAAQARITFBYXGB/9oACAEBAAE/EKEqfkAG3Y7lX4IFStduBxO486vtn//Z) ![lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„2](https://www.snugarchive.com/static/cd212fd2b88b02a52d22f6f238d403be/270d4/bnd-lmplot-options-penguins.jpg) ![lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„2](https://www.snugarchive.com/static/cd212fd2b88b02a52d22f6f238d403be/270d4/bnd-lmplot-options-penguins.jpg) lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„2 #### residplot `resideplot()`์€ ์‹ค์ œ ๋ฐ์ดํ„ฐํฌ์ธํŠธ์™€ ํšŒ๊ท€์„ ๊ณผ์˜ ์ž”์ฐจ(residuals)๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ``` pythonsns.residplot(x='bill_length_mm', y='bill_depth_mm',lowess=True,data=df_penguins) ``` ![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='794.3661971830985'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAEDAgX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB7arNNjF//8QAGBAAAgMAAAAAAAAAAAAAAAAAAAEQETH/2gAIAQEAAQUCbLlaf//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABcQAAMBAAAAAAAAAAAAAAAAAAARIDH/2gAIAQEABj8CwU//xAAZEAADAQEBAAAAAAAAAAAAAAAAARExECH/2gAIAQEAAT8hel5TNLDEQmouf//aAAwDAQACAAMAAAAQT8//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPxBGf//EABYRAAMAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPxChf//EABoQAQEBAAMBAAAAAAAAAAAAAAERACExQWH/2gAIAQEAAT8QoGZnGtceqTyYS5VUZfmFQC9va4J23f/Z) ![resideplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ž”์ฐจ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/adc72889ac9e87dec51553f6492becc9/097e7/bnd-residplot-penguins.jpg) ![resideplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ž”์ฐจ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/adc72889ac9e87dec51553f6492becc9/097e7/bnd-residplot-penguins.jpg) resideplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ž”์ฐจ ๊ทธ๋ž˜ํ”„ ์ง€๊ธˆ๊นŒ์ง€ Seaborn์œผ๋กœ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ์ˆ˜๊ณ  ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค. ## ์ฐธ๊ณ  ๋ฌธํ—Œ - \[1\] ๋‹คํฌํ”„๋กœ๊ทธ๋ž˜๋จธ, ๏ฝขKernel Density Estimation(์ปค๋„๋ฐ€๋„์ถ”์ •)์— ๋Œ€ํ•œ ์ดํ•ด๏ฝฃ, ๋‹คํฌํ”„๋กœ๊ทธ๋ž˜๋จธ, "<https://darkpgmr.tistory.com/147>" - \[2\] ์ด์ œํ˜„, ๏ฝขseaborn regplot vs lmplot๏ฝฃ, Pega Devlog, "<https://jehyunlee.github.io/2022/06/06/Python-DS-103-snsreglmplot/>" - \[3\] Dipanjan (DJ) Sarkar, ๏ฝขThe Art of Effective Visualization of Multi-dimensional Data๏ฝฃ, Towards Data Science, "<https://towardsdatascience.com/the-art-of-effective-visualization-of-multi-dimensional-data-6c7202990c57>" - \[4\] Rfriend, ๏ฝข\[Python\] ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„ (Mosaic Chart)๏ฝฃ, Rfriend, "<https://rfriend.tistory.com/418>" - \[5\] Seaborn, ๏ฝขseaborn.histplot๏ฝฃ, Seaborn, "<https://seaborn.pydata.org/generated/seaborn.histplot.html>" - \[6\] Seaborn, ๏ฝขseaborn.jointplot๏ฝฃ, Seaborn, "<https://seaborn.pydata.org/generated/seaborn.jointplot.html>" - \[7\] Seaborn, ๏ฝขseaborn.pairplot๏ฝฃ, Seaborn, "<https://seaborn.pydata.org/generated/seaborn.pairplot.html>" - \[8\] Statsmodels, ๏ฝขstatsmodels.graphics.mosaicplot.mosaic๏ฝฃ, Statsmodels, "<https://www.statsmodels.org/dev/generated/statsmodels.graphics.mosaicplot.mosaic.html>" ์ด์ „ ๊ธ€ [ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ๊ธฐ์ดˆํŽธ](https://www.snugarchive.com/blog/python-data-visualization-seaborn-basic/) ๋‹ค์Œ ๊ธ€ [ECharts ์‚ฌ์šฉ๋ฒ•๊ณผ ์˜ˆ์ œ](https://www.snugarchive.com/blog/echarts-tutorial/) [ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ](https://www.snugarchive.com/) 0 Comments #### ์†Œ๊ฐœ ![author](https://www.snugarchive.com/static/3973f4520ff4c8e58eb5275beb3d6a3e/e07e1/banner-about.jpg) ![author](https://www.snugarchive.com/static/3973f4520ff4c8e58eb5275beb3d6a3e/e07e1/banner-about.jpg) ์›น ๊ฐœ๋ฐœ, ๋ฐ์ดํ„ฐ ๋ถ„์„ - - [์ปดํ“จํ„ฐ ๊ณผํ•™2](https://www.snugarchive.com/blog/category/computer-science/) - [๊ธฐ์ดˆ2](https://www.snugarchive.com/blog/category/computer-science/basic/) - [๋ฐ์ดํ„ฐ ๊ณผํ•™9](https://www.snugarchive.com/blog/category/data-science/) - [๋ฐ์ดํ„ฐ ์ˆ˜์ง‘1](https://www.snugarchive.com/blog/category/data-science/data-collection/) - [๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ5](https://www.snugarchive.com/blog/category/data-science/data-preprocessing/) - [๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”3](https://www.snugarchive.com/blog/category/data-science/visualization/) - [ํ™˜๊ฒฝ ์„ค์ •12](https://www.snugarchive.com/blog/category/environment-setup/) - [๊ฐœ๋ฐœ12](https://www.snugarchive.com/blog/category/environment-setup/development/) - [์ˆ˜ํ•™1](https://www.snugarchive.com/blog/category/mathematics/) - [ํ†ต๊ณ„1](https://www.snugarchive.com/blog/category/mathematics/statistics/) - [์ž์—ฐ์–ด7](https://www.snugarchive.com/blog/category/natural-language/) - [์˜์–ด5](https://www.snugarchive.com/blog/category/natural-language/english/) - [ํ•œ๊ตญ์–ด2](https://www.snugarchive.com/blog/category/natural-language/korean/) - [ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด4](https://www.snugarchive.com/blog/category/programming-language/) - [C3](https://www.snugarchive.com/blog/category/programming-language/c/) - [Kotlin1](https://www.snugarchive.com/blog/category/programming-language/kotlin/) - [์›น ๊ฐœ๋ฐœ6](https://www.snugarchive.com/blog/category/web-development/) - [HTML2](https://www.snugarchive.com/blog/category/web-development/html/) - [React4](https://www.snugarchive.com/blog/category/web-development/react/) - - [์›น ์•ฑ2](https://www.snugarchive.com/blog/category/web-app/) - [๋Œ€์‹œ๋ณด๋“œ2](https://www.snugarchive.com/blog/category/web-app/dashboard/) #### ํƒœ๊ทธ ๋ฆฌ์ŠคํŠธ ํŽผ์ณ๋ณด๊ธฐ [C ๊ธฐ์ดˆ(3)](https://www.snugarchive.com/tag/c-%EA%B8%B0%EC%B4%88/) [ChartJS(1)](https://www.snugarchive.com/tag/chartjs/) [ECharts(1)](https://www.snugarchive.com/tag/echarts/) [Gatsby(1)](https://www.snugarchive.com/tag/gatsby/) [HTML ๊ธฐ์ดˆ(2)](https://www.snugarchive.com/tag/html-%EA%B8%B0%EC%B4%88/) [HTML ์š”์†Œ(1)](https://www.snugarchive.com/tag/html-%EC%9A%94%EC%86%8C/) [HTML ํƒœ๊ทธ(1)](https://www.snugarchive.com/tag/html-%ED%83%9C%EA%B7%B8/) [IDE(3)](https://www.snugarchive.com/tag/ide/) [JDK(2)](https://www.snugarchive.com/tag/jdk/) [Kotlin ๊ธฐ์ดˆ(1)](https://www.snugarchive.com/tag/kotlin-%EA%B8%B0%EC%B4%88/) [MySQL(1)](https://www.snugarchive.com/tag/mysql/) [Node(2)](https://www.snugarchive.com/tag/node/) [pandas ์‚ฌ์šฉ๋ฒ•(5)](https://www.snugarchive.com/tag/pandas-%EC%82%AC%EC%9A%A9%EB%B2%95/) [Python Pandas ๊ธฐ์ดˆ(4)](https://www.snugarchive.com/tag/python-pandas-%EA%B8%B0%EC%B4%88/) [Python Seaborn(2)](https://www.snugarchive.com/tag/python-seaborn/) [Python ์‹ค์Šต(1)](https://www.snugarchive.com/tag/python-%EC%8B%A4%EC%8A%B5/) [React(1)](https://www.snugarchive.com/tag/react/) [React ๊ธฐ์ดˆ(4)](https://www.snugarchive.com/tag/react-%EA%B8%B0%EC%B4%88/) [React ์‹œ์ž‘(2)](https://www.snugarchive.com/tag/react-%EC%8B%9C%EC%9E%91/) [React ์ •์˜(1)](https://www.snugarchive.com/tag/react-%EC%A0%95%EC%9D%98/) [React ํ™˜๊ฒฝ ์„ค์ •(1)](https://www.snugarchive.com/tag/react-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95/) [Spring(5)](https://www.snugarchive.com/tag/spring/) [Visual Studio(1)](https://www.snugarchive.com/tag/visual-studio/) [๊ฐ์ • ํ‘œํ˜„ ์˜์–ด(4)](https://www.snugarchive.com/tag/%EA%B0%90%EC%A0%95-%ED%91%9C%ED%98%84-%EC%98%81%EC%96%B4/) [๋งˆํฌ์—… ์–ธ์–ด(1)](https://www.snugarchive.com/tag/%EB%A7%88%ED%81%AC%EC%97%85-%EC%96%B8%EC%96%B4/) [์–ด๊ฐ(2)](https://www.snugarchive.com/tag/%EC%96%B4%EA%B0%90/) [์˜์–ด ๋ฌธ๋ฒ• ์šฉ์–ด(1)](https://www.snugarchive.com/tag/%EC%98%81%EC%96%B4-%EB%AC%B8%EB%B2%95-%EC%9A%A9%EC%96%B4/) [์˜์–ด ์•ฝ์–ด(1)](https://www.snugarchive.com/tag/%EC%98%81%EC%96%B4-%EC%95%BD%EC%96%B4/) [์˜์–ด ์ค„์ž„๋ง(1)](https://www.snugarchive.com/tag/%EC%98%81%EC%96%B4-%EC%A4%84%EC%9E%84%EB%A7%90/) [์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ(1)](https://www.snugarchive.com/tag/%EC%A3%BC%ED%94%BC%ED%84%B0-%EB%85%B8%ED%8A%B8%EB%B6%81/) [ํฌ๋กค๋ง ์Šคํฌ๋ž˜ํ•‘ ์ฐจ์ด(1)](https://www.snugarchive.com/tag/%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%8A%A4%ED%81%AC%EB%9E%98%ED%95%91-%EC%B0%A8%EC%9D%B4/) [ํ…์ŠคํŠธ ์—๋””ํ„ฐ ์ถ”์ฒœ(1)](https://www.snugarchive.com/tag/%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%97%90%EB%94%94%ED%84%B0-%EC%B6%94%EC%B2%9C/) [ํ†ต๊ณ„ ๊ธฐ์ดˆ(1)](https://www.snugarchive.com/tag/%ED%86%B5%EA%B3%84-%EA%B8%B0%EC%B4%88/) [ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(IDE) ์ถ”์ฒœ(1)](https://www.snugarchive.com/tag/%ED%86%B5%ED%95%A9-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD\(ide\)-%EC%B6%94%EC%B2%9C/) [ํŒŒ์ด์ฌ ๊ธฐ์ดˆ(1)](https://www.snugarchive.com/tag/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B8%B0%EC%B4%88/) [ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ(2)](https://www.snugarchive.com/tag/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88/) [ํ•˜์ดํผํ…์ŠคํŠธ(1)](https://www.snugarchive.com/tag/%ED%95%98%EC%9D%B4%ED%8D%BC%ED%85%8D%EC%8A%A4%ED%8A%B8/) [ํ•œ๊ตญ์–ด๋Šฅ๋ ฅ์‹œํ—˜(2)](https://www.snugarchive.com/tag/%ED%95%9C%EA%B5%AD%EC%96%B4%EB%8A%A5%EB%A0%A5%EC%8B%9C%ED%97%98/) [ํ—ท๊ฐˆ๋ฆฌ๋Š” ํ•œ๊ตญ์–ด ๋‹จ์–ด(2)](https://www.snugarchive.com/tag/%ED%97%B7%EA%B0%88%EB%A6%AC%EB%8A%94-%ED%95%9C%EA%B5%AD%EC%96%B4-%EB%8B%A8%EC%96%B4/) #### ์ตœ๊ทผ๊ธ€ [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='266.6666666666667'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAIAAAABPYjBAAAACXBIWXMAAAsTAAALEwEAmpwYAAAATUlEQVR42mP4jw18/vrty7fv/wkBBqyia/ce2XTw6P///+7evXv//v1fv36RoPnE5Wsrz296+PThLTB48eIFCZr//P3z7TfQ2f/wOxsAPyzpdm2ddYEAAAAASUVORK5CYII=) ![SQL Developer ๋‹ค์šด๋กœ๋“œ ๋ฐ ์‚ฌ์šฉ๋ฒ•](https://www.snugarchive.com/static/2db571f6e1d36b184d3a7359adf3cf99/6c71a/featured-image-sql-developer-logo.png) ![SQL Developer ๋‹ค์šด๋กœ๋“œ ๋ฐ ์‚ฌ์šฉ๋ฒ•](https://www.snugarchive.com/static/2db571f6e1d36b184d3a7359adf3cf99/6c71a/featured-image-sql-developer-logo.png)ํ™˜๊ฒฝ ์„ค์ • 2023-10-26 SQL Developer ๋‹ค์šด๋กœ๋“œ ๋ฐ ์‚ฌ์šฉ๋ฒ•](https://www.snugarchive.com/blog/sql-developer-setup/) [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='800'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA30lEQVR42r2SSwuCQBDH+/6foahTRgcJgy4duxhBGyqFSBYRBSqyotu+1Jpc8GQPCPuxDDPM4787bOf+A51WmouyrE/LymVFUTx1rkk2dfYTy1vsz7Otn1Cm7qJ4qaxSl4SMN94IuXP3NNsd4xurUw3KMC+O4zAMwaZpeiNEci44k4wKChHBGEdRBAXgNzSnFUEQWJaFEFquVmsAIdt2IDz4PsmyBGPGWPObwYLyUNN0XTcMowd0u+AM+n3TNOuaNwsrKKVSSiEEiHDOWQU45ceFqSl5nqtByv73h33T/ADMQvNzTv0sjAAAAABJRU5ErkJggg==) ![DBMS ์„ค์น˜ํ•˜๊ธฐ(์˜ค๋ผํด 21c XE, MySQL)](https://www.snugarchive.com/static/3e517c0b79ccfe8af35afbe62604afef/0d540/featured-image-oracle-db.png) ![DBMS ์„ค์น˜ํ•˜๊ธฐ(์˜ค๋ผํด 21c XE, MySQL)](https://www.snugarchive.com/static/3e517c0b79ccfe8af35afbe62604afef/0d540/featured-image-oracle-db.png)ํ™˜๊ฒฝ ์„ค์ • 2023-08-31 DBMS ์„ค์น˜ํ•˜๊ธฐ(์˜ค๋ผํด 21c XE, MySQL)](https://www.snugarchive.com/blog/dbms-installation/) [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='266.6666666666667'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAIAAAABPYjBAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAW0lEQVR42mP4jw38+/f3/bdXv//++o8XMGBqA5IP31/ffH323beX7727cu3lyccfboKkgJCAZrCKt1+fX35+9OnHu08/3nn26d6D99eJ0gwHP/98//fvH35nAwBwVeog5DCCTwAAAABJRU5ErkJggg==) ![STS 4/STS 3 ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/static/6e3fcc45160c6ad35166a3efaf91175e/6c71a/featured-image-spring-logo.png) ![STS 4/STS 3 ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/static/6e3fcc45160c6ad35166a3efaf91175e/6c71a/featured-image-spring-logo.png)ํ™˜๊ฒฝ ์„ค์ • 2023-08-21 STS 4/STS 3 ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/blog/sts-setup/) [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='266.6666666666667'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAEABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB35hUH//EABYQAQEBAAAAAAAAAAAAAAAAAAACMf/aAAgBAQABBQJOv//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAABD/2gAIAQEABj8Cf//EABgQAQEAAwAAAAAAAAAAAAAAACEBABAx/9oACAEBAAE/IbzBTV1//9oADAMBAAIAAwAAABAAD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABoQAQEAAgMAAAAAAAAAAAAAAAERABAhMUH/2gAIAQEAAT8QUSeGGindW86//9k=) ![์•„ํŒŒ์น˜ ํ†ฐ์บฃ(Apache Tomcat) ๋‹ค์šด๋กœ๋“œ ๋ฐ ํ™˜๊ฒฝ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/static/bb37c0af7147efcc1958c3750fb9eca9/8bb58/featured-image-apache-tomcat.jpg) ![์•„ํŒŒ์น˜ ํ†ฐ์บฃ(Apache Tomcat) ๋‹ค์šด๋กœ๋“œ ๋ฐ ํ™˜๊ฒฝ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/static/bb37c0af7147efcc1958c3750fb9eca9/8bb58/featured-image-apache-tomcat.jpg)ํ™˜๊ฒฝ ์„ค์ • 2023-08-21 ์•„ํŒŒ์น˜ ํ†ฐ์บฃ(Apache Tomcat) ๋‹ค์šด๋กœ๋“œ ๋ฐ ํ™˜๊ฒฝ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/blog/apache-tomcat-setup/) [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='269.0344062153163'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAIAAAABPYjBAAAACXBIWXMAAAsTAAALEwEAmpwYAAAATElEQVR42mP4jxX8+QtChAADusC/f0Di5/HLz3cfO3f95oUr189eunrv4WOwzD+iNP+6eu/DpVv3nz1//PT5sxcvX799B5IhbDMpAACJT+pObUysagAAAABJRU5ErkJggg==) ![ECharts ์‚ฌ์šฉ๋ฒ•๊ณผ ์˜ˆ์ œ](https://www.snugarchive.com/static/c9a547d7db1f83820da6592578a84edc/c529d/featured-image-echarts-logo.png) ![ECharts ์‚ฌ์šฉ๋ฒ•๊ณผ ์˜ˆ์ œ](https://www.snugarchive.com/static/c9a547d7db1f83820da6592578a84edc/c529d/featured-image-echarts-logo.png)๋ฐ์ดํ„ฐ ๊ณผํ•™ 2023-08-04 ECharts ์‚ฌ์šฉ๋ฒ•๊ณผ ์˜ˆ์ œ](https://www.snugarchive.com/blog/echarts-tutorial/) #### ์ธ๊ธฐ๊ธ€ [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='900'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQBAgMF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAenKrK5lhP/EABkQAAMBAQEAAAAAAAAAAAAAAAABAhEDEv/aAAgBAQABBQL0aipinFR0MMZ//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGRAAAgMBAAAAAAAAAAAAAAAAAAEQESES/9oACAEBAAY/AtcW0X0zI//EABoQAQEAAwEBAAAAAAAAAAAAAAEAESFBMWH/2gAIAQEAAT8hfgguzlC22CvMYsDXiY//2gAMAwEAAgADAAAAEMDf/8QAFhEAAwAAAAAAAAAAAAAAAAAAAAER/9oACAEDAQE/EI0Q/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAECAQE/ENGf/8QAHBABAQACAgMAAAAAAAAAAAAAAREAITGxUYGR/9oACAEBAAE/EFDsBjg03mtzg4VRmeQKHuLmpZMlbr3iXQfc/9k=) ![ํŒŒ์ด์ฌ ์›น ํฌ๋กค๋ง? ์›น ์Šคํฌ๋ž˜ํ•‘ ๊ฐœ๋…๊ณผ ์‹ค์Šต ์˜ˆ์ œ](https://www.snugarchive.com/static/c57d317cf0b98896cf96de3902029dc5/784ed/featured-image-scraping.jpg) ![ํŒŒ์ด์ฌ ์›น ํฌ๋กค๋ง? ์›น ์Šคํฌ๋ž˜ํ•‘ ๊ฐœ๋…๊ณผ ์‹ค์Šต ์˜ˆ์ œ](https://www.snugarchive.com/static/c57d317cf0b98896cf96de3902029dc5/784ed/featured-image-scraping.jpg)๋ฐ์ดํ„ฐ ๊ณผํ•™ 2022-04-19 ํŒŒ์ด์ฌ ์›น ํฌ๋กค๋ง? ์›น ์Šคํฌ๋ž˜ํ•‘ ๊ฐœ๋…๊ณผ ์‹ค์Šต ์˜ˆ์ œ](https://www.snugarchive.com/blog/python-web-scraping/) [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='811'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAEDAgT/xAAWAQEBAQAAAAAAAAAAAAAAAAADAQL/2gAMAwEAAhADEAAAAeTUmxwETf8A/8QAGBABAQEBAQAAAAAAAAAAAAAAAgEDABH/2gAIAQEAAQUCGZRuY5mSjaE3Wcl7f//EABYRAQEBAAAAAAAAAAAAAAAAABEBEP/aAAgBAwEBPwGLn//EABURAQEAAAAAAAAAAAAAAAAAAAAB/9oACAECAQE/AYr/xAAaEAEBAAIDAAAAAAAAAAAAAAABABAhETFB/9oACAEBAAY/AhTd1ag4b3H/xAAZEAADAQEBAAAAAAAAAAAAAAAAAREhMeH/2gAIAQEAAT8hsSbuifskUyDKURVqC7K8P//aAAwDAQACAAMAAAAQh8//xAAXEQEAAwAAAAAAAAAAAAAAAAABEBEx/9oACAEDAQE/EArOR//EABcRAAMBAAAAAAAAAAAAAAAAAAABEUH/2gAIAQIBAT8QRaRT/8QAGhAAAwEBAQEAAAAAAAAAAAAAAREhADFh0f/aAAgBAQABPxAtwBk1w2UeV9wMhTuJUCUSxbteLC4AAS7/2Q==) ![ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(IDE), ํ…์ŠคํŠธ ์—๋””ํ„ฐ ์ธ๊ธฐ ์ˆœ์œ„ (2022๋…„)](https://www.snugarchive.com/static/7c4b81386ca793e7895ce7995549af1f/2acd7/featured-image-stackoverflow-2021-survey-development-environments-preferences.jpg) ![ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(IDE), ํ…์ŠคํŠธ ์—๋””ํ„ฐ ์ธ๊ธฐ ์ˆœ์œ„ (2022๋…„)](https://www.snugarchive.com/static/7c4b81386ca793e7895ce7995549af1f/2acd7/featured-image-stackoverflow-2021-survey-development-environments-preferences.jpg)ํ™˜๊ฒฝ ์„ค์ • 2022-04-14 ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(IDE), ํ…์ŠคํŠธ ์—๋””ํ„ฐ ์ธ๊ธฐ ์ˆœ์œ„ (2022๋…„)](https://www.snugarchive.com/blog/best-ide-text-editors/) [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='266.6666666666667'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAEABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB35hUH//EABYQAQEBAAAAAAAAAAAAAAAAAAACMf/aAAgBAQABBQJOv//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAABD/2gAIAQEABj8Cf//EABgQAQEAAwAAAAAAAAAAAAAAACEBABAx/9oACAEBAAE/IbzBTV1//9oADAMBAAIAAwAAABAAD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABoQAQEAAgMAAAAAAAAAAAAAAAERABAhMUH/2gAIAQEAAT8QUSeGGindW86//9k=) ![์•„ํŒŒ์น˜ ํ†ฐ์บฃ(Apache Tomcat) ๋‹ค์šด๋กœ๋“œ ๋ฐ ํ™˜๊ฒฝ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/static/bb37c0af7147efcc1958c3750fb9eca9/8bb58/featured-image-apache-tomcat.jpg) ![์•„ํŒŒ์น˜ ํ†ฐ์บฃ(Apache Tomcat) ๋‹ค์šด๋กœ๋“œ ๋ฐ ํ™˜๊ฒฝ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/static/bb37c0af7147efcc1958c3750fb9eca9/8bb58/featured-image-apache-tomcat.jpg)ํ™˜๊ฒฝ ์„ค์ • 2023-08-21 ์•„ํŒŒ์น˜ ํ†ฐ์บฃ(Apache Tomcat) ๋‹ค์šด๋กœ๋“œ ๋ฐ ํ™˜๊ฒฝ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/blog/apache-tomcat-setup/) [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='600.8415147265077'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMBBf/EABQBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAe9OgdCf/8QAGBAAAwEBAAAAAAAAAAAAAAAAAAExAhD/2gAIAQEAAQUCZmjnP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABYQAAMAAAAAAAAAAAAAAAAAAAAgMf/aAAgBAQAGPwIq/wD/xAAZEAEAAwEBAAAAAAAAAAAAAAABABAxcYH/2gAIAQEAAT8hxEuj6VpyABlf/9oADAMBAAIAAwAAABA7z//EABYRAQEBAAAAAAAAAAAAAAAAAAEQMf/aAAgBAwEBPxAxn//EABYRAQEBAAAAAAAAAAAAAAAAAAEQMf/aAAgBAgEBPxB0n//EAB0QAAICAQUAAAAAAAAAAAAAAAERABAhMUFRkaH/2gAIAQEAAT8QIuQ2tpwonBwdV70EEAeqFf/Z) ![์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/static/87fe504a615c62acdb3541a6f4e7dda7/dda5e/featured-image-jupyter.jpg) ![์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/static/87fe504a615c62acdb3541a6f4e7dda7/dda5e/featured-image-jupyter.jpg)ํ™˜๊ฒฝ ์„ค์ • 2022-04-16 ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/blog/jupyter-notebook-setup/) [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='900'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMBAgQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQL/2gAMAwEAAhADEAAAAeyjTRlpIP8A/8QAGBABAQEBAQAAAAAAAAAAAAAAAQACETH/2gAIAQEAAQUCWzrrnxLgRf/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/ASf/xAAZEAADAAMAAAAAAAAAAAAAAAAAEDEBUWH/2gAIAQEABj8CzwhpRf/EABsQAAMAAwEBAAAAAAAAAAAAAAABESFRcTFh/9oACAEBAAE/Ib9PNikRLD4cE9ZeaJywJFg//9oADAMBAAIAAwAAABCU/wD/xAAWEQEBAQAAAAAAAAAAAAAAAAABACH/2gAIAQMBAT8QRWDL/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAECAQE/EEG7N//EABsQAQADAAMBAAAAAAAAAAAAAAEAESExUWGR/9oACAEBAAE/EDA4ws/UOLxUN9esFaPg3ADRQ3R2DACDwEMy1O63P//Z) ![ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ๊ธฐ์ดˆํŽธ](https://www.snugarchive.com/static/9a7155ba095434e2ba8bc565b127bfb5/93fdb/featured-image-seaborn-univariate.jpg) ![ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ๊ธฐ์ดˆํŽธ](https://www.snugarchive.com/static/9a7155ba095434e2ba8bc565b127bfb5/93fdb/featured-image-seaborn-univariate.jpg)๋ฐ์ดํ„ฐ ๊ณผํ•™ 2022-06-05 ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ๊ธฐ์ดˆํŽธ](https://www.snugarchive.com/blog/python-data-visualization-seaborn-basic/) #### ์ตœ๊ทผํ”„๋กœ์ ํŠธ [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='630'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAIDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHrXoSVD//EABgQAAIDAAAAAAAAAAAAAAAAAAESABEg/9oACAEBAAEFAnL2YMf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAABBAMAAAAAAAAAAAAAAAABAAISICExQf/aAAgBAQAGPwItjgdWq//EABoQAQADAAMAAAAAAAAAAAAAAAEAESEgUfD/2gAIAQEAAT8hEcgM7T0uKzTh/9oADAMBAAIAAwAAABCIP//EABcRAAMBAAAAAAAAAAAAAAAAAAEQEVH/2gAIAQMBAT8Qh1f/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAcEAEAAgEFAAAAAAAAAAAAAAABABEgIUFhcdH/2gAIAQEAAT8Qvkw1Ei7l14iioO5Th//Z) ![์ง€์ง„ ๋ชจ๋‹ˆํ„ฐ๋ง ์ƒํ™ฉํŒ ํ”„๋กœ์ ํŠธ](https://www.snugarchive.com/static/8b02e2f334ee200e0d914a2e1cb77c42/fcb2f/featured-image-earthquake-archive.jpg) ![์ง€์ง„ ๋ชจ๋‹ˆํ„ฐ๋ง ์ƒํ™ฉํŒ ํ”„๋กœ์ ํŠธ](https://www.snugarchive.com/static/8b02e2f334ee200e0d914a2e1cb77c42/fcb2f/featured-image-earthquake-archive.jpg)์›น ์•ฑ 2023-06-20 ์ง€์ง„ ๋ชจ๋‹ˆํ„ฐ๋ง ์ƒํ™ฉํŒ ํ”„๋กœ์ ํŠธ](https://www.snugarchive.com/blog/earthquake-dashboard/) [![](data:image/svg+xml;charset=utf-8,%3Csvg%20height='675.6'%20width='1200'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E) ![](data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABQAD/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQAD/9oADAMBAAIQAxAAAAFCxMc2Yyn/xAAZEAADAQEBAAAAAAAAAAAAAAAAAQIDExH/2gAIAQEAAQUCeUDyg4ybtrPpZF15/8QAFhEBAQEAAAAAAAAAAAAAAAAAABIB/9oACAEDAQE/AaVj/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAECERL/2gAIAQIBAT8Bdo1I/8QAGRAAAwEBAQAAAAAAAAAAAAAAAAEyIQKR/9oACAEBAAY/As5RKJRjKfpTP//EABoQAQACAwEAAAAAAAAAAAAAAAEAERAxQVH/2gAIAQEAAT8hRUXHjdSoNmnBmq9vs//aAAwDAQACAAMAAAAQ5N//xAAYEQACAwAAAAAAAAAAAAAAAAAAARExUf/aAAgBAwEBPxCCtCwP/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQAhYf/aAAgBAgEBPxBJjdL/xAAaEAEAAgMBAAAAAAAAAAAAAAABABEhMVHx/9oACAEBAAE/ECKHNaSLqp2FeIbvmkHc9NFJT0+E/9k=) ![์ฝ”๋กœ๋‚˜19(COVID-19) ์ƒํ™ฉํŒ ํ”„๋กœ์ ํŠธ](https://www.snugarchive.com/static/4ee960757b33e10faded781b95c44cfd/26b49/covid19-dashboard.jpg) ![์ฝ”๋กœ๋‚˜19(COVID-19) ์ƒํ™ฉํŒ ํ”„๋กœ์ ํŠธ](https://www.snugarchive.com/static/4ee960757b33e10faded781b95c44cfd/26b49/covid19-dashboard.jpg)์›น ์•ฑ 2021-12-01 ์ฝ”๋กœ๋‚˜19(COVID-19) ์ƒํ™ฉํŒ ํ”„๋กœ์ ํŠธ](https://www.snugarchive.com/blog/covid19-dashboard/) #### ๋ชฉ์ฐจ 1. [์ค€๋น„](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EC%A4%80%EB%B9%84) - [๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ •](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EA%B8%B0%EB%B3%B8-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95) - [๋ฐ์ดํ„ฐ](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EB%8D%B0%EC%9D%B4%ED%84%B0) 2. [๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ๋ฒ”์ฃผํ˜•](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EB%8B%A4%EC%B0%A8%EC%9B%90-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8B%9C%EA%B0%81%ED%99%94-%EB%B2%94%EC%A3%BC%ED%98%95) - [1\) ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: countplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#1-%EB%B9%88%EB%8F%84-%EB%A7%89%EB%8C%80%EA%B7%B8%EB%9E%98%ED%94%84-countplot) - [2\) ์š”์•ฝ ํ†ต๊ณ„๋Ÿ‰ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: barplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#2-%EC%9A%94%EC%95%BD-%ED%86%B5%EA%B3%84%EB%9F%89-%EB%A7%89%EB%8C%80%EA%B7%B8%EB%9E%98%ED%94%84-barplot) - [3\) ํฌ์ธํŠธ ํ”Œ๋กฏ: pointplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#3-%ED%8F%AC%EC%9D%B8%ED%8A%B8-%ED%94%8C%EB%A1%AF-pointplot) - [4\) ์ƒ์ž๊ทธ๋ฆผ: boxplot(), boxenplot(), violinplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#4-%EC%83%81%EC%9E%90%EA%B7%B8%EB%A6%BC-boxplot-boxenplot-violinplot) - [5\) ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#5-%EB%AA%A8%EC%9E%90%EC%9D%B4%ED%81%AC-%EA%B7%B8%EB%9E%98%ED%94%84) 3. [๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ์ˆ˜์น˜ํ˜•](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EB%8B%A4%EC%B0%A8%EC%9B%90-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8B%9C%EA%B0%81%ED%99%94-%EC%88%98%EC%B9%98%ED%98%95) - [1\) ์ ๊ทธ๋ž˜ํ”„: stripplot(), swarmplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#1-%EC%A0%90%EA%B7%B8%EB%9E%98%ED%94%84-stripplot-swarmplot) - [2\) ์„ ๋ถ„๊ทธ๋ž˜ํ”„: rugplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#2-%EC%84%A0%EB%B6%84%EA%B7%B8%EB%9E%98%ED%94%84-rugplot) - [3\) ํžˆ์Šคํ† ๊ทธ๋žจ: histplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#3-%ED%9E%88%EC%8A%A4%ED%86%A0%EA%B7%B8%EB%9E%A8-histplot) - [4\) ์ปค๋„๋ฐ€๋„ํ•จ์ˆ˜ ๊ทธ๋ž˜ํ”„: kdeplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#4-%EC%BB%A4%EB%84%90%EB%B0%80%EB%8F%84%ED%95%A8%EC%88%98-%EA%B7%B8%EB%9E%98%ED%94%84-kdeplot) - [5\) ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜: ecdfplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#5-%EA%B2%BD%ED%97%98%EC%A0%81-%EB%88%84%EC%A0%81%EB%B6%84%ED%8F%AC%ED%95%A8%EC%88%98-ecdfplot) 4. [๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ: ๊ด€๊ณ„](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EB%8B%A4%EC%B0%A8%EC%9B%90-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B4%80%EA%B3%84) - [1\) ์„ ๊ทธ๋ž˜ํ”„: lineplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#1-%EC%84%A0%EA%B7%B8%EB%9E%98%ED%94%84-lineplot) - [2\) ์‚ฐ์ ๋„: scatterplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#2-%EC%82%B0%EC%A0%90%EB%8F%84-scatterplot) - [3\) ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„: jointplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#3-%EA%B2%B0%ED%95%A9%EC%A3%BC%EB%B3%80%EB%B6%84%ED%8F%AC%EB%8F%84-jointplot) - [4\) ์‚ฐ์ ๋„ ํ–‰๋ ฌ: pairplot()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#4-%EC%82%B0%EC%A0%90%EB%8F%84-%ED%96%89%EB%A0%AC-pairplot) - [5\) ์ƒ๊ด€ํ–‰๋ ฌ: heatmap(), clustermap()](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#5-%EC%83%81%EA%B4%80%ED%96%89%EB%A0%AC-heatmap-clustermap) - [6\) ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#6-%ED%9A%8C%EA%B7%80-%EA%B7%B8%EB%9E%98%ED%94%84) 5. [์ฐธ๊ณ  ๋ฌธํ—Œ](https://www.snugarchive.com/blog/python-data-visualization-seaborn-advanced/#%EC%B0%B8%EA%B3%A0-%EB%AC%B8%ED%97%8C) ยฉ2026 Snug Archive. All rights reserved. Email: snugarchive@gmail.com
Readable Markdown
## ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Last Updated 2024-09-10 Published 2023-01-12[Python Seaborn](https://www.snugarchive.com/tag/python-seaborn/)11๋ถ„ ๋ชฉ์ฐจ ![ํŒŒ์ด์ฌ Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋กœ๋“œ๋งต](https://www.snugarchive.com/static/cc6bde51dc6e6bff10ac274aecf99abb/93fdb/featured-image-seaborn-multivariate.jpg) Seaborn์œผ๋กœ ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•ด๋ณด์ž ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” ํŒŒ์ด์ฌ์˜ Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๋ณ€์ˆ˜๊ฐ€ 1๊ฐœ์ธ ๋‹จ๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ(univariate data)๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๋ณ€์ˆ˜๊ฐ€ 2๊ฐœ์ธ ์ด๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ(bivariate data)์™€ 3๊ฐœ ์ด์ƒ์ธ ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ(multivariate data)๋ฅผ ์‹œ๊ฐํ™”๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Seaborn ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ • ๋ฐฉ๋ฒ•๊ณผ ๊ทธ๋ž˜ํ”„ ์Šคํƒ€์ผ๋ง, 1์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„๋“ค์€ [ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ๊ธฐ์ดˆํŽธ](https://www.snugarchive.com/blog/python-data-visualization-seaborn-basic/)์„ ๋จผ์ € ์ฝ์œผ์‹œ๊ธฐ๋ฅผ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1. ๋‹ค์ฐจ์› ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” > - ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(๋ณ‘๋ ฌ): catplot(kind='count') > - ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(๋‹ค์ค‘, ๋ˆ„์ ): countplot > - ์š”์•ฝ ํ†ต๊ณ„๊ฐ’ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: barplot > - ์š”์•ฝ ํ†ต๊ณ„๊ฐ’ ํฌ์ธํŠธ๊ทธ๋ž˜ํ”„: pointplot > - ์ƒ์ž๊ทธ๋ฆผ: boxplot, boxenplot, violinplot 1. ๋‹ค์ฐจ์› ์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” > - ์ ๊ทธ๋ž˜ํ”„(dot plot): stripplot, swarmplot > - ์„ ๋ถ„๊ทธ๋ž˜ํ”„(rug plot): rugplot > - ํžˆ์Šคํ† ๊ทธ๋žจ(histogram): histplot > - ๋ฐ€๋„๊ทธ๋ฆผ(density plot): kdeplot > - ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜(empirical cumulative distribution function): ecdfplot 1. ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ๊ด€๊ณ„ ์‹œ๊ฐํ™” > - ์„ ๊ทธ๋ž˜ํ”„(line plot): lineplot > - ์‚ฐ์ ๋„(scatter plot): scatterplot > - ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„(joint/marginal distribution plot): jointplot > - ์‚ฐ์ ๋„ ํ–‰๋ ฌ(scatter plot matrix): pairplot > - ์ƒ๊ด€ ํ–‰๋ ฌ(correlation matrix): heatmap, clustermap > - ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„(regression plot): regplot, lmplot, residplot ![Seaborn ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋กœ๋“œ๋งต](https://www.snugarchive.com/static/cc6bde51dc6e6bff10ac274aecf99abb/93fdb/featured-image-seaborn-multivariate.jpg) Seaborn ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋กœ๋“œ๋งต ## ์ค€๋น„ ์‹ค์Šต์„ ์œ„ํ•ด์„œ๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(development environments)๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๋ถ€ํ„ฐ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ### ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ • ๊ธ€์—์„œ๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์œผ๋กœ ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ(Jupyter notebook)์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์‹œ๊ฐํ™” ์‹ค์Šต์„ ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์„ค์ •๋งŒ ์ ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ณ„ ์ž์„ธํ•œ ์„ค๋ช…์€ Matplotlib ์‚ฌ์šฉ๋ฒ•(์˜ˆ์ •)์„ ์ฐธ์กฐํ•ด ์ฃผ์„ธ์š”. ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ์˜ ์ž์„ธํ•œ ํ™˜๊ฒฝ์„ค์ • ๋ฐฉ๋ฒ•์€ [์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ](https://www.snugarchive.com/blog/jupyter-notebook-setup/)๋ฅผ ์ฐธ์กฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom matplotlib import rcParamsimport seaborn as snsimport warningsdef setting_styles_basic():rcParams['font.family'] = 'Malgun Gothic'rcParams['axes.unicode_minus'] = Falsesetting_styles_basic()warnings.filterwarnings('ignore') ``` ๋‹ค์Œ์œผ๋กœ๋Š” ๊ทธ๋ž˜ํ”„์˜ ์Šค์ผ€์ผ(scale)์„ ์กฐ์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šค์ผ€์ผ ์กฐ์ •์€ `sns.set_context` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Seaborn์˜ ๋‹ค์–‘ํ•œ ์Šคํƒ€์ผ๋ง ๋ฐฉ๋ฒ•์€ [ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Seaborn ์‚ฌ์šฉ๋ฒ• ๊ธฐ์ดˆํŽธ](https://www.snugarchive.com/blog/python-data-visualization-seaborn-basic/)์˜ ์Šคํƒ€์ผ๋ง ๋ถ€๋ถ„์„ ์ฐธ์กฐํ•ด ์ฃผ์„ธ์š”. ์ฝ”๋“œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๊ทธ๋ž˜ํ”„ ์ „์—ญ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.set_context('paper',rc={'font.size':15,'xtick.labelsize':15,'ytick.labelsize':15,'axes.labelsize':15}) ``` ์‹ค์Šต์„ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ํ™˜๊ฒฝ ์„ค์ •์„ ๋งˆ์ณค๋‹ค๋ฉด ๋‹ค์Œ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ### ๋ฐ์ดํ„ฐ ์‹ค์Šต์„ ์œ„ํ•ด์„œ Seaborn์˜ ๋‚ด์žฅ ๋ฐ์ดํ„ฐ๋ฅผ `load_dataset()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋กœ๋”ฉํ•ด ์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠน์ • ๋ฐ์ดํ„ฐ์…‹์€ Sklearn(์‚ฌ์ดํ‚ท๋Ÿฐ)์—์„œ ๋ถˆ๋Ÿฌ์™€ pandas์˜ DataFrame์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythondf_titanic = sns.load_dataset('titanic')df_iris = sns.load_dataset('iris')df_penguins = sns.load_dataset('penguins')df_tips = sns.load_dataset('tips')df_diamonds = sns.load_dataset('diamonds')df_planets = sns.load_dataset('planets')df_flights = sns.load_dataset('flights')from sklearn.datasets import load_winewine_data = load_wine()df_wines = pd.DataFrame(data=wine_data.data,columns=wine_data.feature_names) ``` ๊ทธ๋Ÿผ ์ง€๊ธˆ๋ถ€ํ„ฐ ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋Š” ๋ณ€๋Ÿ‰์ด 2๊ฐœ์ธ ์ด๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ์™€ ๋ณ€๋Ÿ‰์ด 3๊ฐœ ์ด์ƒ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ณ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•  ๋•Œ๋Š” ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” `hue`, ์บ”๋ฒ„์Šค๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” `col`, ์  ํฌ๊ธฐ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” `size` ๋“ฑ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ด์šฉํ•ด ์‹œ๊ฐํ™” ์ฐจ์›์„ ๋„“ํ˜€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋‹ค๋ณ€๋Ÿ‰ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ## ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ๋ฒ”์ฃผํ˜• ๋‹ค๋ณ€๋Ÿ‰ ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” Seaborn์˜ ๊ทธ๋ž˜ํ”„๋Š” ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(๋ณ‘๋ ฌ, ๋‹ค์ค‘, ๋ˆ„์ )๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ### 1\) ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: countplot() ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„(์นด์šดํŠธํ”Œ๋กฏ)์€ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. #### ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋ณ‘๋ ฌ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” ๋‘ ๋ณ€๋Ÿ‰์— ๋Œ€ํ•œ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ 2๊ฐœ๋ฅผ ๊ฐ๊ฐ์˜ ์บ”๋ฒ„์Šค(canvas)์— ๋ณ‘๋ ฌ๋กœ ๋‚˜์—ดํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `catplot()` ํ•จ์ˆ˜์— `kind='count'` ์™€ `col` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `countplot()` ํ•จ์ˆ˜๋กœ๋Š” ๋ณ‘๋ ฌ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ``` pythonsns.catplot(x='class',col='who',kind='count',data=df_titanic) ``` ![countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/02ab5a2c205cbf781b0002b4f0d93f91/b3a8b/bcd-catplot-count-parallel-titanic.jpg) countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ณ‘๋ ฌ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ #### ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” `countplot()` ๋˜๋Š” `catplot()`์— `hue` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•ด์„œ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `hue` ์˜ต์…˜์€ ๋ณ€๋Ÿ‰์„ ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ž…๋‹ˆ๋‹ค. ๋จผ์ € ์ˆ˜์ง ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ถ€ํ„ฐ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ##### ์ˆ˜์ง ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ `countplot()` ํ•จ์ˆ˜ ๋˜๋Š” `caplot()` ํ•จ์ˆ˜๋กœ ์ˆ˜์ง ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜์˜ `x` ํŒŒ๋ผ๋ฏธํ„ฐ์— ๊ฐ€๋กœ์ถ• ๋ฒ”์ฃผ๋กœ ์‚ฌ์šฉํ•  DataFrame์˜ ์—ด ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ , `hue` ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋‹ค๋ฅธ ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•  DataFrame์˜ ์—ด ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.countplot(x='class', hue='who', data=df_titanic)sns.catplot(x='class', hue='who', kind='count',palette='pastel',edgecolor='.6',data=df_titanic) ``` ![countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a6ac84be12a99da59b3f3a2a719da797/ccf18/bcd-countplot-vertical-multiple-titanic.jpg) countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ `histplot()` ํ•จ์ˆ˜์— `multiple='dodge'` ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `histplot()` ํ•จ์ˆ˜๋Š” ์ˆ˜์น˜ํ˜• ์ž๋ฃŒ๋ฅผ ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด์ง€๋งŒ, ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ง‰๋Œ€ ์‚ฌ์ด์— ๊ฐ„๊ฒฉ์„ ์ฃผ๊ณ  x์ถ• ๋ˆˆ๊ธˆ์„ ์—†์• ๋ฉด ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ผ๋ฐ˜ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์ฒ˜๋Ÿผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonax = sns.histplot(x='sex', hue='survived',multiple='dodge',shrink=.8,data=df_titanic)ax.tick_params(bottom=False) ``` ![histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a547e3232decc7d0847fa1771f3b7b6d/2b1f4/bcd-countplot-vertical-multiple2-titanic.jpg) histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ด๋ฒˆ์—๋Š” ์ˆ˜ํ‰ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ##### ์ˆ˜ํ‰ ๋‹ค์ค‘ ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜ํ‰ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ์ˆ˜์ง ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ๋•Œ ์‚ฌ์šฉํ•œ ํ•จ์ˆ˜์— `x` ํŒŒ๋ผ๋ฏธํ„ฐ ๋Œ€์‹  `y` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.countplot(y='class', hue='who', data=df_titanic)sns.catplot(y='class', hue='who', kind='count',palette='pastel', edgecolor='.6',data=df_titanic) ``` ![countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ฐ€๋กœ ๊ทธ๋ฃนํ˜• ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a9ee0ce90a68f626bfa8c99e769c17b1/26d6d/bcd-countplot-horizontal-multiple-titanic.jpg) countplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ฐ€๋กœ ๊ทธ๋ฃนํ˜• ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ #### ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ Seaborn์œผ๋กœ ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด `histplot()` ํ•จ์ˆ˜์— `multiple='stack'` ์˜ต์…˜์„ ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ##### ์ˆ˜์ง ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ``` pythonax = sns.histplot(x='sex', hue='survived',multiple='stack',shrink=.8,data=df_titanic)ax.tick_params(bottom=False) ``` ![histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜์ง ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/eabc50748f46df565cb991e91a2aacde/40c27/bcd-countplot-vertical-stacked-titanic.jpg) histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜์ง ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ##### ์ˆ˜ํ‰ ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜ํ‰ ๋ˆ„์  ๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `x` ํŒŒ๋ผ๋ฏธํ„ฐ ๋Œ€์‹  `y` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonax = sns.histplot(y='sex', hue='survived',multiple='stack',shrink=.8,palette='pastel',data=df_titanic);ax.tick_params(left=False) ``` ![histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜ํ‰ ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/53653a723bea8756dc604083ad9c5dd5/bb43f/bcd-countplot-horizontal-stacked-titanic.jpg) histplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹จ์ˆœ ์ˆ˜ํ‰ ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ### 2\) ์š”์•ฝ ํ†ต๊ณ„๋Ÿ‰ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„: barplot() ์š”์•ฝ ํ†ต๊ณ„๋Ÿ‰ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” ๋ฒ”์ฃผํ˜• ์ž๋ฃŒ์— ๋Œ€ํ•œ ์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ƒ˜ํ”Œ๋ง(์›๋ณธ ๋ฐ์ดํ„ฐ์™€ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ์ƒ˜ํ”Œ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ณต์› ์ถ”์ถœ)ํ•˜์—ฌ ์–ป์€ ํ‘œ๋ณธ๋“ค์˜ ํ‰๊ท ๊ณผ ๊ทธ ํ‰๊ท ์˜ ์‹ ๋ขฐ๊ตฌ๊ฐ„(confidence interval)์„ ๋‚˜ํƒ€๋‚ธ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ์‹ ๋ขฐ๊ตฌ๊ฐ„์€ ๋ง‰๋Œ€ ์œ„ ๊ฒ€์ •์ƒ‰ ์˜ค์ฐจ ๋ง‰๋Œ€(error bar)๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์š”์•ฝ ํ†ต๊ณ„๊ฐ’ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `barplot()` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `catplot()` ํ•จ์ˆ˜์— `kind='bar'` ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ๋ณต์› ์ƒ˜ํ”Œ๋ง๋œ ํ‘œ๋ณธ๋“ค์˜ ํ‰๊ท ๊ณผ 95% ์‹ ๋ขฐ๊ตฌ๊ฐ„์ด ํ‘œํ˜„๋˜์ง€๋งŒ `estimator` ํŒŒ๋ผ๋ฏธํ„ฐ์™€ `ci` ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ฐ๊ฐ ์š”์•ฝ ํ†ต๊ณ„๊ฐ’๊ณผ ์‹ ๋ขฐ๊ตฌ๊ฐ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. > - estimator: ์ค‘์•™๊ฐ’ `np.median`, ํ•ฉ๊ณ„ `np.sum` ๋“ฑ > - ci: ์‹ ๋ขฐ๊ตฌ๊ฐ„ ์ง€์ •(๊ธฐ๋ณธ๊ฐ’: 95), `sd`๋กœ ์„ค์ • ์‹œ ํ‘œ์ค€ํŽธ์ฐจ(standard deviation)๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ, `None`์œผ๋กœ ์„ค์ • ์‹œ ์˜ค์ฐจ ๋ง‰๋Œ€ ์ œ๊ฑฐ > - n\_boot: ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ƒ˜ํ”Œ๋ง ํšŸ์ˆ˜(๊ธฐ๋ณธ๊ฐ’: 1000) ๋จผ์ € ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฒ•๋ถ€ํ„ฐ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #### ๊ธฐ๋ณธ ##### ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜์ง ํ‰๊ท  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.barplot(x='day', y='total_bill', data=df_tips)sns.catplot(x='day', y='total_bill', kind='bar', data=df_tips) ``` ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/6d3d06946417ed7d96e45c8d8254716b/570db/bnd-barplot-vertical-tips.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ##### ์ˆ˜ํ‰ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋งŒ์ผ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ์ˆ˜ํ‰์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `barplot()` ํ•จ์ˆ˜์— `orient='h'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.barplot(x='total_bill', y='day', orient='h', data=df_tips) ``` ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/53a8221010b7bda4d605f51adc419097/f781e/bnd-barplot-horizontal-tips.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ #### ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ `barplot()` ํ•จ์ˆ˜์— `hue` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ##### ์ˆ˜์ง ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋‹ค์Œ์€ ๋ณ€๋Ÿ‰์ด 3๊ฐœ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•˜๋Š” ์˜ˆ์‹œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ``` pythonsns.barplot(x='day', y='total_bill',hue='smoker', data=df_tips) ``` ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/c59363148a173643e974d80473fab796/5c7f8/bnd-barplot-vertical-multiple-tips.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ##### ์ˆ˜ํ‰ ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์ˆ˜ํ‰ ๋‹ค์ค‘ ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ์œผ๋ฉด `orient=h` ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.barplot(x='total_bill', y='day',hue='smoker', orient='h', data=df_tips) ``` ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/5745ca10ede82def90203ff24a9cdd2b/808b9/bnd-barplot-horizontal-multiple-tips.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์š”์•ฝ ๋‹ค์ค‘ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ #### ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `barplot()` ํ•จ์ˆ˜์— `dodge=False`์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Seaborn์—์„œ ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” ํ‰๊ท ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ง‰๋Œ€์˜ ์ตœ๋Œ“๊ฐ’ ์œ„์— ๋‹ค๋ฅธ ํ‰๊ท ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ง‰๋Œ€๋ฅผ ์Œ“์•„์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ๋ž˜ํ”„ ์ž์ฒด๋ฅผ ์„œ๋กœ ๊ฒน์ณ์„œ ๊ทธ๋ฆฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ``` pythonsns.barplot(x='day', y='total_bill',hue='smoker', dodge=False,data=df_tips) ``` ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„1](https://www.snugarchive.com/static/0290c4543939129c56212d470ce6ac33/a6702/bnd-barplot-vertical-stacked-tips.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„1 ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” `barplot()` ํ•จ์ˆ˜๋ฅผ ์—ฐ์ด์–ด ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythons1 = sns.barplot(x='species', y='sepal_length',color='coral', ci=None, data=df_iris)s2 = sns.barplot(x='species', y='petal_length',color='powderblue', ci=None, data=df_iris) ``` ![barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„2](https://www.snugarchive.com/static/f9eb2e540d328308ce086a40af2b969f/35731/bnd-barplot-vertical-stacked-iris.jpg) barplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ˆ„์  ์š”์•ฝ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„2 ์œ„ ๊ทธ๋ž˜ํ”„์—์„œ ๋ง‰๋Œ€์˜ y์ถ•๊ฐ’(์ƒ‰์น ๋œ ๋ถ€๋ถ„)์€ ๊ฐ๊ฐ `sepal_length`์˜ ํ‰๊ท ๊ณผ `petal_length`์˜ ํ‰๊ท ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ### 3\) ํฌ์ธํŠธ ํ”Œ๋กฏ: pointplot() ํฌ์ธํŠธํ”Œ๋กฏ์€ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์™€ ๋™์ผํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  ํ‰๊ท ๊ฐ’์„ ๋ง‰๋Œ€ ๋Œ€์‹  ์ (point)์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ํฌ์ธํŠธํ”Œ๋กฏ์€ `pointplot()` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ํฌ์ธํŠธํ”Œ๋กฏ์€ ํ•œ ํ™”๋ฉด์— ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๋น„๊ตํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ``` pythonsns.pointplot(x='day', y='total_bill', data=df_tips)sns.catplot(x='day', y='total_bill', kind='point', data=df_tips) ``` ![pointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํฌ์ธํŠธ ํ”Œ๋กฏ](https://www.snugarchive.com/static/cb0373248c15bc9039972ddb2da1b08c/c7d87/bnd-pointplot-vertical-tips.jpg) pointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํฌ์ธํŠธ ํ”Œ๋กฏ ๋งŒ์ผ ์‹ ๋ขฐ๊ตฌ๊ฐ„์ด ์•„๋‹ˆ๋ผ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด `ci='sd'`๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์„ ๊ณผ ํฌ์ธํŠธ๋ฅผ ๋‹ค๋ฅธ ๋ชจ์–‘์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.pointplot(x='class', y='survived', hue='sex',palette={'male': 'g', 'female': 'm'},markers=['^', 'o'],linestyles=['-', '--'],data=df_titanic) ``` ![์˜ต์…˜์„ ์ถ”๊ฐ€ํ•œ ํฌ์ธํŠธ ํ”Œ๋กฏ](https://www.snugarchive.com/static/d32cf10dfe66b50c610761b22a9b3273/aaaf3/bnd-pointplot-options-tips.jpg) ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•œ ํฌ์ธํŠธ ํ”Œ๋กฏ ### 4\) ์ƒ์ž๊ทธ๋ฆผ: boxplot(), boxenplot(), violinplot() ์ƒ์ž๊ทธ๋ฆผ(๋ฐ•์Šคํ”Œ๋กฏ)์€ ๋ฐ์ดํ„ฐ์˜ ๋ถ„์œ„๋ฅผ 5๊ฐ€์ง€ ์š”์•ฝ ์ˆ˜์น˜(five-number summary)๋กœ ์ œ๊ณตํ•˜๋Š” ๋„ํ‘œ์ž…๋‹ˆ๋‹ค. > - ์ œ3์‚ฌ๋ถ„์œ„์ˆ˜ (Q3): ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘ ์ƒ์œ„ 25%์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’, ๋ฐ•์Šค์˜ ์œ„์ชฝ ๊ฒฝ๊ณ„์„ ์œผ๋กœ ํ‘œ์‹œ > - ์ œ2์‚ฌ๋ถ„์œ„์ˆ˜ (Q2 ๋˜๋Š” ์ค‘์•™๊ฐ’): ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ 50%์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’(์ค‘์•™๊ฐ’), ๋ฐ•์Šค ๋‚ด๋ถ€์˜ ์„ ์œผ๋กœ ํ‘œ์‹œ > - ์ œ1์‚ฌ๋ถ„์œ„์ˆ˜ (Q1): ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘ ํ•˜์œ„ 25%์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’, ๋ฐ•์Šค์˜ ์•„๋ž˜์ชฝ ๊ฒฝ๊ณ„์„ ์œผ๋กœ ํ‘œ์‹œ > - ์‚ฌ๋ถ„์œ„ ๋ฒ”์œ„ (IQR): Q3 - Q1, ๋ฐ•์Šค์˜ ๋†’์ด๋กœ ํ‘œํ˜„ > - ์ตœ๋Œ“๊ฐ’ (Maximum): ์ด์ƒ์น˜๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ฐ์ดํ„ฐ์…‹์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’, ๋ฐ•์Šคํ”Œ๋กฏ์—์„œ ์œ„์ชฝ ์ˆ˜์—ผ์˜ ๋์ ์œผ๋กœ ํ‘œ์‹œ > - ์ตœ์†Ÿ๊ฐ’ (Minimum): ์ด์ƒ์น˜๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ฐ์ดํ„ฐ์…‹์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’, ๋ฐ•์Šคํ”Œ๋กฏ์—์„œ ์•„๋ž˜์ชฝ ์ˆ˜์—ผ์˜ ๋์ ์œผ๋กœ ํ‘œ์‹œ > - ์ด์ƒ์น˜ (Outliers): ์ผ๋ฐ˜์ ์œผ๋กœ Q1 - 1.5IQR ๋ฏธ๋งŒ์ด๊ฑฐ๋‚˜ Q3 + 1.5IQR ์ดˆ๊ณผ์ธ ๊ฐ’๋“ค์„ ๊ฐœ๋ณ„ ์ ์œผ๋กœ ํ‘œ์‹œ #### ๊ธฐ๋ณธ Seaborn์—์„œ ์ƒ์ž๊ทธ๋ฆผ์„ ๋งŒ๋“ค๋ ค๋ฉด `boxplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `catplot()` ํ•จ์ˆ˜์— 'kind='box'\` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.boxplot(data=df_iris)sns.catplot(data=df_iris, kind='box') ``` ![boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์ƒ์ž๊ทธ๋ฆผ](https://www.snugarchive.com/static/46e5f43c5c2230c3052c267dc5a320db/c51d1/bnd-boxplot-overview-iris.jpg) boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜์ง ์ƒ์ž๊ทธ๋ฆผ ๋งŒ์ผ ์ƒ์ž๊ทธ๋ฆผ์„ ์ˆ˜ํ‰์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `orient='h'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.boxplot(data=df_iris, orient='h') ``` ![boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ](https://www.snugarchive.com/static/0cde07c2c4031965664d2644de26c7c9/963c3/bnd-boxplot-overview-horizontal-iris.jpg) boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ 3์ฐจ์› ๋ฐ•์Šคํ”Œ๋กฏ์€ `hue` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์„œ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `hue` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋”ํ•˜๋ฉด ๋น„์Šทํ•œ ์†์„ฑ์˜ ๋ฐ์ดํ„ฐ๋ผ๋ฆฌ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythondf_tips['weekend'] = df_tips['day'].isin(['Sat', 'Sun'])sns.boxplot(x='total_bill', y='day', hue='weekend',orient='h',dodge=False,data=df_tips) ``` ![boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ2](https://www.snugarchive.com/static/dc902d29efca7a0413fd9217b2fe91aa/12b6f/bnd-boxplot-overview-horizontal2-iris.jpg) boxplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ˆ˜ํ‰ ์ƒ์ž๊ทธ๋ฆผ2 #### ๋ฐ•์Šจ ํ”Œ๋กฏ ๋ฐ•์Šจ ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ„์œ„๋กœ ๋‚˜๋ˆˆ ๋ฐ•์Šคํ”Œ๋กฏ์ž…๋‹ˆ๋‹ค. ๋ฐ•์Šจ ํ”Œ๋กฏ์€ ๋ฐ์ดํ„ฐ์…‹์„ ๋” ๋งŽ์€ ๋ถ„์œ„์ˆ˜(quantiles)๋กœ ๋‚˜๋ˆ„์–ด ๊ธฐ์กด์˜ ์ƒ์ž๊ทธ๋ฆผ๋ณด๋‹ค ์ด์ƒ์น˜(outliers)์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ฐ•์Šจ ํ”Œ๋กฏ์€ ํฐ ๋ฐ์ดํ„ฐ์…‹์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ•์Šจ ํ”Œ๋กฏ์„ ๋งŒ๋“ค๋ ค๋ฉด `boxenplot()`์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `catplot()` ํ•จ์ˆ˜์— `kind='boxen'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.boxenplot(x='color', y='price',data=df_diamonds.sort_values('color'))sns.catplot(x='color', y='price', kind='boxen',data=df_diamonds.sort_values('color')) ``` ![boxenplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ•์Šจ ํ”Œ๋กฏ](https://www.snugarchive.com/static/a9fb30679b28624187af254012522fd7/09a25/bnd-boxenplot-diamonds.jpg) boxenplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ•์Šจ ํ”Œ๋กฏ #### ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ์€ ์ƒ์ž๊ทธ๋ฆผ๊ณผ KDE ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด ์ถ”์ •ํ•œ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜(์ปค๋„๋ฐ€๋„์ถ”์ • ํ•จ์ˆ˜)๋ฅผ ํ•ฉ์นœ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `violinplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `catplot()` ํ•จ์ˆ˜์— `kind='violin'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythonsns.violinplot(x='total_bill', y='day', data=df_tips)sns.catplot(x='total_bill', y='day', kind='violin', data=df_tips) ``` ![violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ](https://www.snugarchive.com/static/1bd4d4123a07c6970bf6f991a9b2687b/7cc12/bnd-violinplot-tips.jpg) violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด `hue` ์™€ `split=True` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ![violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ2](https://www.snugarchive.com/static/182faa4b01b87df127b138ae5b347be0/90a5b/bnd-violinplot-tips2.jpg) violinplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋ฐ”์ด์˜ฌ๋ฆฐ ํ”Œ๋กฏ2 ### 5\) ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ์™ธ์—๋„ ๋ณ€๋Ÿ‰์ด ๋ชจ๋‘ ๋ฒ”์ฃผํ˜•์ธ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ๋•Œ๋Š” ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„(mosaic plot)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„๋Š” ๊ทธ๋ฃน ๋‚ด์˜ ๋ฐ์ดํ„ฐ ๋ฐฑ๋ถ„์œจ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ˆ„์  ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„๋Š” ๋ณ€์ˆ˜๊ฐ€ 3๊ฐœ ์ด์ƒ์ผ ๋•Œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„๋Š” `statmodels.graphics.mosaic` ํŒจํ‚ค์ง€์˜ `mosaic()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonfrom statsmodels.graphics.mosaicplot import mosaicimport matplotlib.pyplot as pltprops = lambda key: {'color': 'teal' if '1' in key else 'lightgray'}labelizer = lambda k: {('female','1'): '์—ฌ์„ฑ\n(์ƒ์กด)', ('female','0'): '์—ฌ์„ฑ\n(์‚ฌ๋ง)',('male','1'): '๋‚จ์„ฑ\n(์ƒ์กด)', ('male', '0'): '๋‚จ์„ฑ\n(์‚ฌ๋ง)'}[k]mosaic(df_titanic.sort_values('sex'),['sex', 'survived'],properties=props,labelizer=labelizer,axes_label=False)plt.title('ํƒ€์ดํƒ€๋‹‰ํ˜ธ ์„ฑ๋ณ„ ์ƒ์กด์ž', fontsize=17) ``` ![mosaic ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ชจ์ž์ดํฌ ํ”Œ๋กฏ](https://www.snugarchive.com/static/34de17600def235b7b59c3ef258b13f4/bf1d4/bcd-mosaicplot-titanic.jpg) mosaic ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ชจ์ž์ดํฌ ํ”Œ๋กฏ ์ง€๊ธˆ๊นŒ์ง€ Seaborn์œผ๋กœ ๋‹ค๋ณ€๋Ÿ‰ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋‹ค๋ณ€๋Ÿ‰ ์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ## ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ์ˆ˜์น˜ํ˜• ### 1\) ์ ๊ทธ๋ž˜ํ”„: stripplot(), swarmplot() ์ ๊ทธ๋ž˜ํ”„๋Š” ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๋„ํ‘œ์ž…๋‹ˆ๋‹ค. ์ ๊ทธ๋ž˜ํ”„๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ์‹ค์ œ ์œ„์น˜์™€ ๋ถ„ํฌ๋ฅผ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Seaborn์—์„œ ์ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋ณธ ํ•จ์ˆ˜๋Š” `stripplot()`์ž…๋‹ˆ๋‹ค. #### stripplot ``` pythonsns.stripplot(data=df_tips)sns.catplot(kind='strip', data=df_tips) ``` ![stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ](https://www.snugarchive.com/static/5b617da746fd501a0af66dac6e4cdf85/a340d/bnd-stripplot-overview-tips.jpg) stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ `stripplot()` ํ•จ์ˆ˜์— `jitter` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ์ผ๋ ฌ๋กœ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. > - jitter: ์ง€ํ„ฐ(jitter)๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์— ์•ฝ๊ฐ„์˜ ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ, ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์กฐ๊ธˆ์”ฉ ์›€์ง์—ฌ์„œ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋ž˜ํ”„์— ์—ฌ๋Ÿฌ ๋ฒˆ ๊ฒน์ณ์„œ ํ‘œ์‹œ๋˜๋Š” ํ˜„์ƒ์„ ๋ง‰์•„์คŒ ``` pythonsns.stripplot(x='total_bill', y='smoker',jitter=False,data=df_tips) ``` ![stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ2](https://www.snugarchive.com/static/764527cfba0c51d37446011527338ccf/8ca03/bnd-stripplot-jitter-false-tips.jpg) stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ2 ๋ฐ์ดํ„ฐํฌ์ธํŠธ๊ฐ€ ์„œ๋กœ ๊ฒน์น˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด `dodge=True` ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. > - dodge=True: hue๋กœ ๊ตฌ๋ถ„๋œ ๊ทธ๋ฃน ์‚ฌ์ด ๊ฐ„๊ฒฉ์„ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฒน์น˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ ``` pythonsns.stripplot(x='tip', y='day',palette='Spectral',dodge=True,data=df_tips) ``` ![stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ3](https://www.snugarchive.com/static/dab3c1b616a3ac4f57aea0cf65b1bb24/7f819/bnd-stripplot-palette-tips.jpg) stripplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ ๋„ํ‘œ3 `dodge=True` ์˜ต์…˜์ฒ˜๋Ÿผ ์ ๊ทธ๋ž˜ํ”„์—์„œ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋“ค์ด ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๊ณ  ์ƒˆ์˜ ๋ฌด๋ฆฌ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ `swarmplot()`์ž…๋‹ˆ๋‹ค. #### swarmplot `swarmplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ์ ๋„ํ‘œ์˜ ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ๋–ผ(swarm)์ฒ˜๋Ÿผ ๋ฌด๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐํฌ์ธํŠธ๊ฐ€ ์ค‘์ฒฉ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋–ผ ํ”Œ๋กฏ์„ ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋ณธ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.swarmplot(data=df_tips)sns.catplot(kind='swarm', data=df_tips) ``` ![swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ์ „์ฒด ๋ณ€์ˆ˜](https://www.snugarchive.com/static/fa6ab31f73ac096256f7ab35191761f7/5ff8e/bnd-swarmplot-overview-tips.jpg) swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ์ „์ฒด ๋ณ€์ˆ˜ `x`์™€ `y` ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋–ผ ํ”Œ๋กฏ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythonsns.swarmplot(x='day', y='total_bill', data=df_tips)sns.catplot(x='day', y='total_bill', kind='swarm', data=df_tips) ``` ![swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ํŠน์ • ๋ณ€์ˆ˜](https://www.snugarchive.com/static/de44744004bc30e06ef6ea1e31296af3/aad75/bnd-swarmplot-details-tips.jpg) swarmplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ถ„ํฌ: ํŠน์ • ๋ณ€์ˆ˜ ์‹ค์ œ ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ์ ์ด ์•„๋‹ˆ๋ผ ์„ ๋ถ„(rug)์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ### 2\) ์„ ๋ถ„๊ทธ๋ž˜ํ”„: rugplot() ์‹ค์ˆ˜ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ์„ ๋ถ„์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด `rugplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `rugplot()`์€ ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ๊ฐ ์ถ• ์œ„์— ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ``` pythonsns.rugplot(x='total_bill', y='tips', data='df_tips') ``` ![rugplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์„ ๋ถ„๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a50abfafe005f07f530728d6a3a1de86/41823/bnd-rugplot-only-tips.jpg) rugplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์„ ๋ถ„๊ทธ๋ž˜ํ”„ ๋ณดํ†ต ์„ ๋ถ„๊ทธ๋ž˜ํ”„๋Š” ๋‹ค๋ฅธ ๊ทธ๋ž˜ํ”„์™€ ํ•จ๊ป˜ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋ฅผ ๊ฒน์ณ ๊ทธ๋ฆฌ๋ ค๋ฉด ๊ทธ๋ž˜ํ”„ ํ•จ์ˆ˜๋ฅผ ์—ฐ์ด์–ด ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.scatterplot(x='total_bill', y='tip', data=df_tips)sns.rugplot(x='total_bill', y='tip', data=df_tips) ``` ![rugplot() ํ•จ์ˆ˜์™€ scatterplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/a13bfba4d75f776fd172a17198ff4fca/570db/bnd-rugplot-with-another-graph-tips.jpg) rugplot() ํ•จ์ˆ˜์™€ scatterplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„ ### 3\) ํžˆ์Šคํ† ๊ทธ๋žจ: histplot() Seaborn์—์„œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜๋Š” `histplot()`์ž…๋‹ˆ๋‹ค. `displot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. Seaborn์—์„œ `histplot()` ํ•จ์ˆ˜๋กœ ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ(bivariate histogram)์„ ๊ทธ๋ฆด ๋•Œ๋Š” ๋ณ€๋Ÿ‰์„ ์ƒ‰์ƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” `histplot()` ๋Œ€์‹  `displot()`์„ ์ด์šฉํ•ด ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #### ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ ``` pythonsns.histplot(x='flipper_length_mm', hue='species', data=df_penguins)sns.displot(x='flipper_length_mm', hue='species', data=df_penguins) ``` ์˜ต์…˜์„ ์ด์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. > - hue: ๊ทธ๋ฃน๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ > - multiple='stack': ๋ˆ„์  ํžˆ์Šคํ† ๊ทธ๋žจ(ํฌ๊ฐœ์ง€ ์•Š๊ณ  ์Œ“๊ธฐ) > - multiple='dodge': ๋‹ค์ค‘ ํžˆ์Šคํ† ๊ทธ๋žจ ``` pythonsns.displot(x='flipper_length_mm', hue='species',element='step', data=df_penguins)sns.displot(x='flipper_length_mm', hue='species',multiple='stack', data=df_penguins)sns.displot(x='flipper_length_mm', hue='sex',multiple='dodge', data=df_penguins) ``` ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ1](https://www.snugarchive.com/static/f4899dab74b3ffd997ddac06a340ddf7/5d31a/bnd-histplot-options-penguins.png) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ1 ``` pythonsns.displot(x='bill_length_mm', y='species', hue='species',legend=False, data=df_penguins) ``` ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ2](https://www.snugarchive.com/static/4cf3106171c3126181a456dc610cc533/bfb20/bnd-histplot-options2-penguins.jpg) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ2 > - log\_scale=True: x์ถ• ๊ฐ’ ๋กœ๊ทธ ์Šค์ผ€์ผ๋กœ ๋ณ€ํ™˜ > - element='poly': ๊ทธ๋ž˜ํ”„๋ฅผ ๋ถ„ํฌ๋‹ค๊ฐํ˜•(distribution polygon)์œผ๋กœ ์ง€์ • > - fill=False: ๊ทธ๋ž˜ํ”„ ์„  ์•„๋ž˜ ์ƒ‰๊น” ์ฑ„์šฐ์ง€ ์•Š๊ธฐ ``` pythonsns.displot(x='distance', hue='method', log_scale=True,element='poly', fill=False, data=df_planets) ``` ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ3](https://www.snugarchive.com/static/dee012ffe116a50d447d2308430bcbd9/731c6/bnd-histplot-options-planets.jpg) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ3 ํ•œ ์บ”๋ฒ„์Šค ๋‚ด์— ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ  ๊ทธ๋ž˜ํ”„๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ์บ”๋ฒ„์Šค์— ๋‚˜๋ˆ„์–ด์„œ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `col` ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `col` ์˜ต์…˜์€ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ฐœ๋ณ„ ์บ”๋ฒ„์Šค์— ๋‚˜๋ˆ„์–ด ๊ทธ๋ ค์ค๋‹ˆ๋‹ค. ``` pythonsns.displot(x='flipper_length_mm',col='sex',data=df_penguins) ``` ![displot ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ4](https://www.snugarchive.com/static/cee0eecb000a5764d89ec6f2547682b3/3b5c8/bnd-histplot-col-penguins.png) displot ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ํžˆ์Šคํ† ๊ทธ๋žจ4 ๋งŒ์ผ ๋‘ ๋ณ€๋Ÿ‰์ด ๋ชจ๋‘ ์ˆ˜์น˜ํ˜•์ด๋ผ๋ฉด ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ํžˆํŠธ๋งต(heatmap) ๊ฐ™์€ ๋ชจ์–‘์„ ๋ ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. > - binwidth: ์ง์‚ฌ๊ฐํ˜• ํฌ๊ธฐ ์ง€์ • > - cbar: ์ƒ‰ ์ง‘์ค‘๋„์— ๋”ฐ๋ฅธ ๋นˆ๋„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ปฌ๋Ÿฌ๋ฐ” ์œ ๋ฌด ์ง€์ • > - hue: ์ƒ‰์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ๊ทธ๋ฃน๋ณ„ ๊ทธ๋ž˜ํ”„ ์„ค์ •(๋ถ„ํฌ ๊ฐ„ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์ด ์ ์–ด์•ผ ํ•จ) ``` pythonsns.displot(x='bill_length_mm', y='bill_depth_mm',data=df_penguins)sns.displot(x='bill_length_mm', y='bill_depth_mm', binwidth=(2, .5),data=df_penguins)sns.displot(x='bill_length_mm', y='bill_depth_mm', cbar=True,data=df_penguins)sns.displot(x='bill_length_mm', y='bill_depth_mm', hue='species',data=df_penguins) ``` ![displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/b8f6ef81b3a846ab11ad5c2e8f198b9a/f0ad3/bnd-histplot-heatmap.jpg) displot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ > - bins: ๋“ฑ๊ธ‰ ์ˆ˜ ์ง€์ •ํ•˜๊ธฐ > - discrete: x์ถ• ๋ผ๋ฒจ์„ ๋ง‰๋Œ€ ์ค‘๊ฐ„์— ์œ„์น˜์‹œํ‚ค๊ธฐ(True) > - pthresh: ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ํ•ด๋‹น ๋น„์œจ(0~1)์˜ ์…€ ํˆฌ๋ช… ์ฒ˜๋ฆฌํ•˜๊ธฐ > - pmax: ํฌํ™”๋„ ์ตœ๋Œ“๊ฐ’(0~1) ์ง€์ •ํ•˜๊ธฐ ``` pythonsns.displot(df_planets, x='year', y='distance',bins=30, discrete=(True, False), log_scale=(False, True))sns.displot(df_planets, x='year', y='distance',bins=30, discrete=(True, False),log_scale=(False, True),thresh=None)sns.displot(df_planets, x='year', y='distance',bins=30, discrete=(True, False),log_scale=(False, True),pthresh=.05, pmax=.9)sns.displot(df_planets, x='year', y='distance',bins=30, discrete=(True, False),log_scale=(False, True),cbar=True, cbar_kws=dict(shrink=.75)) ``` ![displot() ํ•จ์ˆ˜์— ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ6](https://www.snugarchive.com/static/a5c4f2327825070a5a1e01fb1015b99d/36675/bnd-histplot-options2-planets.jpg) displot() ํ•จ์ˆ˜์— ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ6 ์ง€๊ธˆ๊นŒ์ง€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์˜ต์…˜์„ ์ด์šฉํ•ด ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ทธ๋ ค๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋งŒ์ผ ๊ทธ๋ฃน๋ณ„๋กœ ๊ด€์ธก์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ •๊ทœํ™”(normalization)ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ(data point)๊ฐ€ ๋™์ผํ•œ ์ •๋„์˜ ์Šค์ผ€์ผ(์ค‘์š”๋„)๋กœ ํ•ด์„๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ์˜ ์ค‘์š”๋„๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ด์ƒ์น˜๋ฅผ ์ง€๋‹Œ ํŠน์ • ์†์„ฑ์ด ์ „์ฒด ์†์„ฑ์ฒ˜๋Ÿผ ๋Œ€ํ‘œ๋˜๋Š” ์ผ๋ฐ˜ํ™”์˜ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋ฅผ ๊ฑฐ์นœ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ(normalized histogram)์ด ๋ฉ๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋ฅผ ์œ„ํ•œ ์Šค์ผ€์ผ๋ง ๊ธฐ์ค€์ ์œผ๋กœ๋Š” ์ „์ฒด ๊ด€์ธก์ˆ˜์™€ ๋ฉด์ ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #### ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ(์ „์ฒด ๊ด€์ธก์ˆ˜) Seaborn์—์„œ ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๋ฉด `histplot()` ํ•จ์ˆ˜ ๋˜๋Š” `displot()` ํ•จ์ˆ˜์— `stat='probability'` ๋˜๋Š” `stat='percent'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `stat` ์˜ต์…˜์— `probability` ์ธ์ž๋ฅผ ์ฃผ๋ฉด y์ถ•์ด ํ™•๋ฅ (probability)์ธ ๊ทธ๋ž˜ํ”„๊ฐ€ ๊ทธ๋ ค์ง‘๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, `percent` ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด y์ถ•์ด ๋ฐฑ๋ถ„์œจ(percent)์ธ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ์ „์ž์˜ ๊ฒฝ์šฐ ๋ง‰๋Œ€๋“ค์˜ ๋†’์ด๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋ฉด 1์ด ๋˜๊ณ , ํ›„์ž์˜ ๊ฒฝ์šฐ์—๋Š” 100์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์ถ”๊ฐ€๋ฉด ๊ฐ ๋“ฑ๊ธ‰์˜ ๋นˆ๋„์ˆ˜๋ฅผ ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ๋‚˜๋ˆˆ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.histplot(x='flipper_length_mm', hue='species',stat='probability', data=df_penguins)sns.histplot(x='flipper_length_mm', hue='species',stat='percent', data=df_penguins) ``` ![์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/c64c854d7c6a2194c841f1b1f9d8830e/95e39/bnd-histplot-options3-penguins.jpg) ์ „์ฒด ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ ์—ฌ๊ธฐ์„œ `commont_norm` ์˜ต์…˜์„ `False`๋กœ ์ง€์ •ํ•˜๋ฉด ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ „์ฒด ๊ด€์ธก์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ๋ณ„ ๊ทธ๋ฃน์˜ ๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๋งŒ๋“ค์–ด์ง€๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์„œ๋กœ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. ``` pythonsns.histplot(x='flipper_length_mm', hue='species',stat='probability',common_norm=False, data=df_penguins)sns.histplot(x='flipper_length_mm', hue='species',stat='percent',common_norm=False, data=df_penguins) ``` ![์ „์ฒด๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”: ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/b7675ec50bae8ac783f97041597c62fc/c5407/bnd-histplot-options4-penguins.jpg) ์ „์ฒด๊ด€์ธก์ˆ˜๋กœ ์ •๊ทœํ™”: ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ ์ด๋ฒˆ์—๋Š” ์ „์ฒด ๊ด€์ธก์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #### ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ(๋ฉด์ ) Seaborn์—์„œ ๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”ํ•œ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๋ฉด `stat='density'` ์˜ต์…˜์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ฐ ๋“ฑ๊ธ‰์˜ ๋นˆ๋„์ˆ˜๋ฅผ ์ „์ฒด ๊ด€์ธก์น˜์˜ ๊ฐœ์ˆ˜์™€ ๋ง‰๋Œ€ ๋„ˆ๋น„(width)์˜ ๊ณฑ์œผ๋กœ ๋‚˜๋ˆˆ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ์ด ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ y์ถ•์€ ๋ฐ€๋„(density)๊ฐ€ ๋˜๊ณ , ๊ฐ ๋ง‰๋Œ€์˜ ๋„“์ด๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ํ•ฉ์€ 1์ด ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ, ๋…๋ฆฝ์ ์ธ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `common_norms=False` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.displot(df_penguins, x='flipper_length_mm', hue='species',stat='density')sns.displot(df_penguins, x='flipper_length_mm', hue='species',stat='density',common_norm=False) ``` ![๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”: ๊ธฐ๋ณธ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ ๋ฐ ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ](https://www.snugarchive.com/static/08681dee16948b89ae40f6af257fc373/f270d/bnd-histplot-options5-penguins.png) ๋ฉด์ ์œผ๋กœ ์ •๊ทœํ™”: ๊ธฐ๋ณธ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ ๋ฐ ๊ฐœ๋ณ„ ํžˆ์Šคํ† ๊ทธ๋žจ ์ง€๊ธˆ๊นŒ์ง€ Seaborn์—์„œ ๊ธฐ๋ณธ ํžˆ์Šคํ† ๊ทธ๋žจ๊ณผ 2๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์ •๊ทœ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์€ ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์€ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ๋น ๋ฅด๊ณ  ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•œ๊ณ„๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜(Probability Density Function, PDF)๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉด ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ๋“ฑ๊ธ‰์˜ ์ˆ˜๋Š” ์•„๋ฌด๋ฆฌ ๋งŽ๊ฒŒ ์žก์•„๋„ ์œ ํ•œํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋Š” ๋งค๋„๋Ÿฌ์šด ๊ณก์„ ์ธ๋ฐ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋“ฑ๊ธ‰์€ ๋ถˆ์—ฐ์†์ ์ด๋‹ค๋ณด๋‹ˆ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ชจ์–‘๋„ ๊ณ„๋‹จ๊ณผ ๊ฐ™์ด ์šธํ‰๋ถˆํ‰ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ๋Š” ๋“ฑ๊ธ‰์˜ ๊ฐ„๊ฒฉ๊ณผ ๋ฐ์ดํ„ฐ์˜ ์‹œ์ž‘ ์œ„์น˜์— ๋”ฐ๋ผ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ชจ์–‘์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›(dimension)์ด ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ๋ถ„์„ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋ธ์„ ์ถ”์ •ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ํ‘œ๋ณธ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋„ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๋‹จ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋‹จ์ ์„ ๊ฐœ์„ ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ปค๋„๋ฐ€๋„์ถ”์ •(Kernel Density Estimation, KDE)์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ๋Š” ์ปค๋„๋ฐ€๋„์ถ”์ •์ด๋ž€ ๋ฌด์—‡์ธ์ง€ ๊ทธ๋ฆฌ๊ณ  Seaborn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด KDE ๊ณก์„ ์„ ๊ทธ๋ฆฌ๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ### 4\) ์ปค๋„๋ฐ€๋„ํ•จ์ˆ˜ ๊ทธ๋ž˜ํ”„: kdeplot() ์ปค๋„๋ฐ€๋„์ถ”์ •์ด๋ž€ ์ปค๋„ ํ•จ์ˆ˜(kernel function)๋ฅผ ์ด์šฉํ•ด์„œ ํ™•๋ฅ ๋ณ€์ˆ˜์˜ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋ฅผ ์ถ”์ •ํ•˜๋Š” ๋น„๋ชจ์ˆ˜์ (non-parametric) ํ†ต๊ณ„ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋น„๋ชจ์ˆ˜์  ๋ฐฉ๋ฒ•์ด๋ž€ ๊ด€์ธก ๋ฐ์ดํ„ฐ๊ฐ€ ํŠน์ • ํ™•๋ฅ ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฅธ๋‹ค๋Š” ์ „์ œ ์—†์ด ์‹ค์‹œํ•˜๋Š” ๊ฒ€์ • ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ปค๋„ ํ•จ์ˆ˜๋ž€ ์›์ ์„ ์ค‘์‹ฌ์œผ๋กœ ๋Œ€์นญ์„ ์ด๋ฃจ๊ณ , ์–‘์˜(non-negative) ์‹ค์ˆ˜(real-valued)๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ ๋ถ„๊ฐ’์ด 1์ธ ํ•จ์ˆ˜(*K*)๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„ ํ•จ์ˆ˜์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ฐ€์šฐ์‹œ์•ˆ(Gaussian), ์ฝ”์‚ฌ์ธ(cosine), Epanechnikov ํ•จ์ˆ˜ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ![์ปค๋„ํ•จ์ˆ˜ ์ข…๋ฅ˜](https://www.snugarchive.com/static/b6a4b2e72103fc9c5b2a7a0f03c26890/1e386/kernel-functions.png) ์ปค๋„ํ•จ์ˆ˜ ์ข…๋ฅ˜ ๋ฐ€๋„๊ทธ๋ฆผ(density plot)์€ ์ปค๋„ ์Šค๋ฌด๋”ฉ(kernel smoothing)์„ ์ด์šฉํ•ด ์ถ”์ •ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. KDE์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ปค๋„ ํ•จ์ˆ˜๋กœ ๋Œ€์น˜ํ•˜์—ฌ ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ๋‚˜ํƒ€๋‚ฌ๋˜ ๋“ฑ๊ธ‰์˜ ๋ถˆ์—ฐ์†์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. KDE๋กœ ์ถ”์ •ํ•œ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ๊ณก์„ ์ž…๋‹ˆ๋‹ค. ๋‹จ, KDE ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์กฐ๊ฑด์ด ์žˆ์Šต๋‹ˆ๋‹ค. KDE ๋ฐฉ๋ฒ•์€ ๊ทน๋‹จ๊ฐ’์ด ์—†๋Š” ์—ฐ์† ์ž๋ฃŒ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ๊ณก์„ ์ธ๋ฐ ์ด์ƒ์น˜๊ฐ€ ์žˆ์œผ๋ฉด ํ•ด๋‹น ๊ฐ’์—์„œ ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๊ฐ€ ๋พฐ์กฑํ•œ ๋ชจ์–‘์„ ๋ ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด์ƒ์น˜๊ฐ€ ์žˆ๋Š” ์—ฐ์† ์ž๋ฃŒ์—๋Š” KDE ๋ณด๋‹ค๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. Seaborn์—์„œ KDE ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `kdeplot()`์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `displot()` ํ•จ์ˆ˜์— `kind='kde'` ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” `displot()` ํ•จ์ˆ˜์— `kind='kde'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์„œ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. > - multiple='stack': ๊ทธ๋ž˜ํ”„ ์Œ“์•„์„œ ๊ทธ๋ฆฌ๊ธฐ > - multiple='fill': ๊ฐ ๊ฐ’์—์„œ ๊ฒน์นœ ๋ถ„ํฌ(stacked distribution) ์ •๊ทœํ™”ํ•ด์„œ ๊ทธ๋ฆฌ๊ธฐ(๋‹จ๋ณ€๋Ÿ‰์ผ ๋•Œ๋งŒ ์œ ํšจ, ๋ชจ๋“  ๊ฐ’์—์„œ y์ถ•์˜ ๋ฐ€๋„๊ฐ€ 1) > - fill=True: ๊ทธ๋ž˜ํ”„ ๋ถˆํˆฌ๋ช…ํ•˜๊ฒŒ ๊ทธ๋ฆฌ๊ธฐ > - cumulative=True: ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜ ๊ทธ๋ฆฌ๊ธฐ ``` pythonsns.displot(df_penguins, x='flipper_length_mm', kind='kde', hue='species')sns.displot(df_penguins, x='flipper_length_mm', kind='kde', hue='species',multiple='stack')sns.displot(df_penguins, x='flipper_length_mm', kind='kde', hue='species',multiple='fill')sns.displot(df_penguins, x='flipper_length_mm', kind='kde', hue='species',fill=True)sns.displot(df_penguins, x='flipper_length_mm', kind='kde', hue='species',cumulative=True, common_norm=False, common_grid=True)sns.displot(df_penguins, x='flipper_length_mm', kind='kde',hue='species',fill=True, common_norm=False, palette='crest',alpha=.5, linewidth=0) ``` ![kdeplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๋ฐ€๋„๊ทธ๋ฆผ](https://www.snugarchive.com/static/bf5798442999e116e4b6b8f78608b74a/715e9/bnd-kdeplot-options-penguins.jpg) kdeplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๋ฐ€๋„๊ทธ๋ฆผ ์ด๋ณ€๋Ÿ‰ KDE ๊ทธ๋ž˜ํ”„๋Š” ๋“ฑ๊ณ ์„ (contours)์œผ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋“ฑ๊ณ ์„ ์€ ๋ฐ€๋„๊ฐ€ ๊ฐ™์€ ์ง€์ (iso-proportions)์„ ์ด์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. > - thresh: ๊ฐ€์žฅ ๋‚ฎ์€ ๋ ˆ๋ฒจ์˜ ๋“ฑ๊ณ ์„  ํฌ๊ธฐ ์กฐ์ • > - levels: ๋“ฑ๊ณ ์„  ๊ฐœ์ˆ˜ ๋˜๋Š” ๋ชจ์–‘ ``` pythonsns.displot(df_penguins, x='bill_length_mm', y='bill_depth_mm', kind='kde')sns.displot(df_penguins, x='bill_length_mm', y='bill_depth_mm', kind='kde',thresh=.2, levels=4)sns.displot(df_penguins, x='bill_length_mm', y='bill_depth_mm', kind='kde',levels=[.01, .05, .1, .7])sns.displot(df_penguins, x='bill_length_mm', y='bill_depth_mm', kind='kde',hue='species') ``` ![๋‹ค์–‘ํ•œ ๋‹ค๋ณ€๋Ÿ‰ KDE ๋“ฑ๊ณ ์„  ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/18091ba9d9551884f39dae5a2e45d3d7/06e58/bnd-kdeplot-contour-penguins.jpg) ๋‹ค์–‘ํ•œ ๋‹ค๋ณ€๋Ÿ‰ KDE ๋“ฑ๊ณ ์„  ๊ทธ๋ž˜ํ”„ ### 5\) ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜: ecdfplot() ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `ecdfplot()` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `displot()` ํ•จ์ˆ˜์— \`kind='ecdf' ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. > - hue\_order: \# ์ƒ‰ ์ˆœ์„œ ์ง€์ • > - complementary=True: ์ƒ๋ณด ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜(complementary cumulative distribution function, CCDF) ๊ทธ๋ฆฌ๊ธฐ ``` pythonsns.displot(df_penguins, x='flipper_length_mm', kind='ecdf')sns.displot(df_penguins, x='flipper_length_mm', kind='ecdf',hue='species')sns.displot(data=df_planets, x='distance', hue='method',hue_order=['Radial Velocity', 'Transit'],log_scale=True, element='step', fill=False,cumulative=True, stat='density', common_norm=False)sns.ecdfplot(data=df_penguins, x='bill_length_mm',hue='species', complementary=True) ``` ![ecdfplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜](https://www.snugarchive.com/static/738ac5f5bc0c1176739c6fcbb9503231/dafc5/bnd-ecdfplot-penguins.jpg) ecdfplot()์œผ๋กœ ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์  ๋ˆ„์ ๋ถ„ํฌํ•จ์ˆ˜ ## ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ: ๊ด€๊ณ„ ### 1\) ์„ ๊ทธ๋ž˜ํ”„: lineplot() ์„ ๊ทธ๋ž˜ํ”„๋Š” ์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ฅธ ์—ฐ์†ํ˜• ๋ณ€์ˆ˜์˜ ๋ณ€๋™์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ์„ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `lineplot()`์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `relplot()` ํ•จ์ˆ˜์— `kind='line'` ์˜ต์…˜์„ ์ฃผ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ `flights` ๋ฐ์ดํ„ฐ์—์„œ ์—ฐ๋ณ„(x์ถ•) ํ‰๊ท  ํƒ‘์Šน๊ฐ ์ˆ˜(y์ถ•)๋ฅผ ํ‘œํ˜„ํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ์Œ์˜์œผ๋กœ ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์€ 95% ์‹ ๋ขฐ๊ตฌ๊ฐ„์ž…๋‹ˆ๋‹ค. ``` pythonsns.lineplot(x='year', y='passengers',data=df_flights) ``` ![lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„1](https://www.snugarchive.com/static/9f8dbb06f9414b08b61ddd363ecd84c7/74065/bnd-lineplot-average-flights.jpg) lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„1 ์—ฐ๋ณ„(x์ถ•) ์ด ํƒ‘์Šน๊ฐ์ˆ˜(y์ถ•)๋ฅผ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.lineplot(x='year', y='passengers',data=df_flights.groupby('year').sum())sns.relplot(x='year', y='passengers', kind='line',data=df_flights.groupby('year').sum()) ``` ![lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„2](https://www.snugarchive.com/static/9e8ca519cd4c6cdcc0a5d3dacaee07b1/2fa52/bnd-lineplot-total-flights.jpg) lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„2 ์›”๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด `hue`์™€ `style` ์˜ต์…˜์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ‰์ƒ๊ณผ ์Šคํƒ€์ผ๋กœ ๊ตฌ๋ถ„ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.lineplot(x='year', y='passengers',hue='month', style='month', data=df_flights) ``` ![lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„3](https://www.snugarchive.com/static/258308d45ac4536200dba7a7a1594e56/69826/bnd-lineplot-monthly-flights.jpg) lineplot()์œผ๋กœ ๊ทธ๋ฆฐ ์„ ๊ทธ๋ž˜ํ”„3 `pandas`์˜ `pivot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋งŒ๋“  ํ‘œ๋ฅผ ์ด์šฉํ•ด๋„ ์œ„ ๊ทธ๋ž˜ํ”„์™€ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `pivot()` ํ•จ์ˆ˜๋Š” `index`์™€ `columns` ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ „๋‹ฌํ•œ ์†์„ฑ์„ ๊ฐ๊ฐ ํ…Œ์ด๋ธ”์˜ ํ–‰๊ณผ ์—ด๋กœ ์ง€์ •ํ•ด์„œ `values` ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ „๋‹ฌํ•œ ์ˆ˜์น˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ``` pythonflights_pivot = df_flights.pivot(index='month', columns='year', values='passengers')flights_pivot ``` ![pandas์˜ pivot()ํ•จ์ˆ˜๋กœ ๋งŒ๋“  ์—ฐ๋ณ„, ์›”๋ณ„ ํƒ‘์Šน๊ฐ ํ‘œ](https://www.snugarchive.com/static/3835d9ca32566640fd4978951476cb21/aa8fe/bnd-lineplot-pivot-table-flights.jpg) pandas์˜ pivot()ํ•จ์ˆ˜๋กœ ๋งŒ๋“  ์—ฐ๋ณ„, ์›”๋ณ„ ํƒ‘์Šน๊ฐ ํ‘œ ### 2\) ์‚ฐ์ ๋„: scatterplot() ์‚ฐ์ ๋„๋Š” ๋‘ ๋ฐ์ดํ„ฐ์˜ ๊ด€๊ณ„๋ฅผ ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ์‚ฐ์ ๋„๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `scatterplot()` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `relplot()` ํ•จ์ˆ˜์— `kind='scatter'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.scatterplot(x='bill_length_mm', y='bill_depth_mm', data=df_penguins)sns.relplot(df_penguins['bill_length_mm'], df_penguins['bill_depth_mm'], kind='scatter') ``` ![Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 2์ฐจ์› ์‚ฐ์ ๋„: ๊ธฐ๋ณธ](https://www.snugarchive.com/static/36a9d07659bf17410a8076c643f8c298/90062/bnd-scatterplot-basic-penguins.jpg) Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 2์ฐจ์› ์‚ฐ์ ๋„: ๊ธฐ๋ณธ ์ด๋ฒˆ์—๋Š” 3์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฐ์ ๋„๋กœ ์‹œ๊ฐํ™”ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋„ ์–ธ๊ธ‰ํ–ˆ๋“ฏ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ๋•Œ๋Š” `hue`, `col`, `size` ๋“ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ ์ง€์–ด ์ค„ ์ˆ˜ ์žˆ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‹œ๊ฐํ™”ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. > - style: ๋งˆ์ปค ๋ชจ์–‘ ์ž๋™ ์ง€์ • > - markers: ๋งˆ์ปค ๋ชจ์–‘ ์ˆ˜๋™ ์ง€์ • > - size: ๋งˆ์ปค ํฌ๊ธฐ ์ง€์ • > - sizes: ๋งˆ์ปค ํฌ๊ธฐ์˜ ๋ฒ”์œ„ ์ง€์ • > - legend='full': ๋ชจ๋“  ๋ฐ์ดํ„ฐํฌ์ธํŠธ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ > - hue\_norm: ์ƒ‰์ƒ ๋ฒ”์œ„ ์ง€์ • ``` pythonsns.relplot(x='bill_length_mm', y='bill_depth_mm',hue='island',size='island',col='sex',palette=['gray', 'steelblue', 'g'], sizes=(75, 200),alpha=.5,kind='scatter',data=df_penguins) ``` ![Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 3์ฐจ์› ์‚ฐ์ ๋„](https://www.snugarchive.com/static/e57d3c92929e2e3e6bb5de22f5d8ad56/4cf21/bnd-scatterplot-options-penguins.jpg) Seaborn์œผ๋กœ ๊ทธ๋ฆฐ 3์ฐจ์› ์‚ฐ์ ๋„ ### 3\) ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„: jointplot() ๊ฒฐํ•ฉ๋ถ„ํฌ(joint distribution)์™€ ์ฃผ๋ณ€๋ถ„ํฌ(marginal distribution)๋ฅผ ๊ทธ๋ฆฌ๋ ค๋ฉด `jointplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `jointplot()`์€ ์ถ• ์ˆ˜์ค€(axes-level) ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ``` pythonsns.jointplot(x='bill_length_mm', y='bill_depth_mm', data=df_penguins)sns.jointplot(x='bill_length_mm', y='bill_depth_mm', hue='species',data=df_penguins) ``` ![jointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„](https://www.snugarchive.com/static/40b6e4343097e26143a90194528a1ef0/250a0/bnd-jointplot-basic-penguins.jpg) jointplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ๊ฒฐํ•ฉ/์ฃผ๋ณ€๋ถ„ํฌ๋„ `jointplot()` ํ•จ์ˆ˜์— `kind='kde'` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‘ ๊ฐœ์˜ ๋ถ„ํฌ๋Š” KDE ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ์˜ˆ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ``` pythonsns.jointplot(x='bill_length_mm', y='bill_depth_mm',kind='hist',space=0,size=5, ratio=4,data=df_penguins)sns.jointplot(x='bill_length_mm', y='bill_depth_mm',kind='hex',space=0,size=5, ratio=4,data=df_penguins)sns.jointplot(x='bill_length_mm', y='bill_depth_mm',kind='reg',space=0,size=5, ratio=4,data=df_penguins)sns.jointplot(x='bill_length_mm', y='bill_depth_mm',kind='kde',hue='species',space=0,size=5, ratio=4,data=df_penguins) ``` ![jointplot() ํ•จ์ˆ˜์— kind ์˜ต์…˜์„ ๋”ํ•ด ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/77b8525f73df9eb4a625525a5ccc8065/5c4c2/bnd-jointplot-options1-penguins.jpg) jointplot() ํ•จ์ˆ˜์— kind ์˜ต์…˜์„ ๋”ํ•ด ๊ทธ๋ฆฐ ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„ ์ด๋ฐ–์—๋„ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์–ด๋–ค ๊ทธ๋ž˜ํ”„๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์„ธ์š”. ``` pythonsns.jointplot(x='bill_length_mm', y='bill_depth_mm',marker='+', s=100, marginal_kws=dict(bins=25, fill=False),height=5, ratio=2, marginal_ticks=True, data=df_penguins)g = sns.jointplot(x='bill_length_mm', y='bill_depth_mm')g.plot_joint(sns.kdeplot, color='r', zorder=0, levels=6)g.plot_marginals(sns.rugplot, color='r', height=-.15, clip_on=False, data=df_penguins) ``` ![jointplot() ํ•จ์ˆ˜์™€ ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„ ๊ฒน์ณ ๊ทธ๋ฆฌ๊ธฐ](https://www.snugarchive.com/static/63c3cdb64ef062bce6fc1f44c1aa1324/1b373/bnd-jointplot-options2-penguins.jpg) jointplot() ํ•จ์ˆ˜์™€ ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„ ๊ฒน์ณ ๊ทธ๋ฆฌ๊ธฐ ๋” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๊ฒฐํ•ฉ๋ถ„ํฌ ๋ฐ ์ฃผ๋ณ€๋ถ„ํฌ๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€(figure-level) ์ธํ„ฐํŽ˜์ด์Šค์ธ `JointGrid`๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ `JointGrid`๋ฅผ ์ด์šฉํ•ด ํžˆ์Šคํ† ๊ทธ๋žจ๊ณผ ๋ฐ•์Šค๋ถ„ํฌ๋ฅผ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์‹œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ``` pythong = sns.JointGrid(data=df_penguins, x='bill_length_mm', y='bill_depth_mm')g.plot_joint(sns.scatterplot, s=100, alpha=.5, edgecolor='.2', linewidth=.5)g.plot_marginals(sns.histplot, kde=True)g = sns.JointGrid(data=df_penguins, x='bill_length_mm', y='bill_depth_mm')g.plot(sns.regplot, sns.boxplot)g.refline(x=45, y=16) ``` ![JointGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/5b5a293a01fc9727970b532f796ad05a/c59ea/bnd-jointgrid-penguins.jpg) JointGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„ ### 4\) ์‚ฐ์ ๋„ ํ–‰๋ ฌ: pairplot() ์‚ฐ์ ๋„ ํ–‰๋ ฌ(scatter plot matrix)์€ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋“ค์˜ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์ด์› ์กฐํ•ฉ์„ ํ–‰๋ ฌ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `pairplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ์…‹์˜ ๋ชจ๋“  ์ˆซ์žํ˜• ๋ณ€์ˆ˜ ์Œ์— ๋Œ€ํ•ด ์‚ฐ์ ๋„๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ๋Œ€๊ฐ์„ ์—๋Š” ๊ฐ ๋ณ€์ˆ˜์˜ ๋ถ„ํฌ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์ด๋‚˜ KDE ํ”Œ๋กฏ์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ``` pythonsns.pairplot(df_penguins) ``` ![pairplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/cde593566253508a6bd4ff2d89f52edd/fb1f9/bnd-pairplot-basic1-penguins.jpg) pairplot() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ `corner=True` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์‚ฐ์ ๋„ ํ–‰๋ ฌ์˜ ์ ˆ๋ฐ˜๋งŒ ๊ทธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythonsns.pairplot(df_penguins, corner=True) ``` ![์ ˆ๋ฐ˜ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/d8188357b126392ce91224a24b10d65a/3764f/bnd-pairplot-basic1-half-penguins.jpg) ์ ˆ๋ฐ˜ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ ์›ํ•˜๋Š” ํŠน์ • ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ด์„œ ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythonsns.pairplot(df_penguins,x_vars=['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm'],y_vars=['bill_length_mm', 'bill_depth_mm']) ``` ![ํŠน์ • 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/977703badefe0f411b670be1009bb596/311a0/bnd-pairplot-basic2-penguins.jpg) ํŠน์ • 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ ``` pythonsns.pairplot(df_penguins, kind='hist',height=2) ``` ![2์ฐจ์› ํžˆ์Šคํ† ๊ทธ๋žจ ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/7f1d516ac141670ffa0fc087ab60a4bf/63d0d/bnd-pairplot-option-hist-penguins.jpg) 2์ฐจ์› ํžˆ์Šคํ† ๊ทธ๋žจ ์‚ฐ์ ๋„ ํ–‰๋ ฌ ``` pythonsns.pairplot(df_penguins, kind='kde') ``` ![2์ฐจ์› kde ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/6cf8b80965a6265a9a70eeb4af8173ae/879c9/bnd-pairplot-option-kde-penguins.jpg) 2์ฐจ์› kde ์‚ฐ์ ๋„ ํ–‰๋ ฌ ``` pythonsns.pairplot(df_penguins,plot_kws=dict(marker='+', linewidth=1),diag_kws=dict(fill=False)) ``` ![์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1](https://www.snugarchive.com/static/a960a8be64b23f40fed900c98b3d2551/2aa3c/bnd-pairplot-cutomized1-penguins.jpg) ์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1 ``` pythong = sns.pairplot(df_penguins, diag_kind='kde')g.map_lower(sns.kdeplot, levels=4, color='.2') ``` ![์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2](https://www.snugarchive.com/static/e14590a9331c52f9a57a1a320b8caa4f/f1269/bnd-pairplot-cutomized2-penguins.jpg) ์ปค์Šคํ…€ 2์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2 3์ฐจ์› ์ด์ƒ์˜ ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆฌ๋ ค๋ฉด `hue` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ``` pythonsns.pairplot(df_penguins, hue='species',markers=['o', 's', 'D'],diag_kind='hist') ``` ![3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1](https://www.snugarchive.com/static/5900d273ffb4e7146582a2ae0fce24c4/8e044/bnd-pairplot-option-hue-penguins.jpg) 3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ1 ``` pythonsns.pairplot(df_penguins,hue='species',size=2, aspect=1.8,plot_kws=dict(linewidth=0.5, alpha=0.3),diag_kind='kde',diag_kws=dict(shade=True)) ``` ![3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2](https://www.snugarchive.com/static/8674d5ac10472051bbf8a2240cdebfac/f4c8a/bnd-pairplot-option-hue2-penguins.jpg) 3์ฐจ์› ์‚ฐ์ ๋„ ํ–‰๋ ฌ2 ๋” ์„ธ๋ฐ€ํ•œ ์‚ฐ์ ๋„ ํ–‰๋ ฌ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€ ์ธํ„ฐํŽ˜์ด์Šค์ธ `PairGrid` ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `PairGrid` ํด๋ž˜์Šค๋กœ๋Š” ๊ทธ๋ฆฌ๊ณ  ์‹ถ์€ ๊ทธ๋ž˜ํ”„๋ฅผ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ `kdeplot()`๊ณผ `histplot()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ด๋ณ€๋Ÿ‰ ํžˆ์Šคํ† ๊ทธ๋žจ๊ณผ KDE ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. ``` pythong = sns.PairGrid(df_penguins)g.map_upper(sns.histplot)g.map_lower(sns.kdeplot, fill=True)g.map_diag(sns.histplot, kde=True) ``` ![PairGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ์‚ฐ์ ๋„ ํ–‰๋ ฌ](https://www.snugarchive.com/static/b4976d07e910ebcec934c66fa0f78830/57fc3/bnd-pairgrid-penguins.jpg) PairGrid ํด๋ž˜์Šค๋กœ ๊ทธ๋ฆฐ ์‚ฐ์ ๋„ ํ–‰๋ ฌ ### 5\) ์ƒ๊ด€ํ–‰๋ ฌ: heatmap(), clustermap() #### heatmap ํžˆํŠธ๋งต(heatmap)์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ‰์ƒ์˜ ๊ฐ•๋„๋กœ ํ‘œํ˜„ํ•˜๋Š” 2์ฐจ์› ๊ทธ๋ž˜ํ”ฝ ํ‘œํ˜„ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํžˆํŠธ๋งต์€ ๋ณ€๋Ÿ‰ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด ์ข‹์Šต๋‹ˆ๋‹ค. ํžˆํŠธ๋งต์œผ๋กœ๋Š” ๋‹ค์–‘ํ•œ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ๋Š” ์ƒ๊ด€ํ–‰๋ ฌ์„ ํ‘œํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ``` pythondf_wines = df_wines.sample(frac=1, random_state=7).reset_index(drop=True)corr = df_wines.corr()sns.heatmap(round(corr,1),annot=True,fmt='.1f',cmap='coolwarm',vmax=1.0,vmin=-1.0,linecolor='white',linewidths=.05)sns.set(rc={'figure.figsize':(10,7)}) ``` ![heatmap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ์ƒ๊ด€ํ–‰๋ ฌ ํžˆํŠธ๋งต](https://www.snugarchive.com/static/732f37ae3e22eedbe5cbe71e58537533/c46a0/bnd-heatmap-basic-wines.png) heatmap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ์ƒ๊ด€ํ–‰๋ ฌ ํžˆํŠธ๋งต #### clustermap ํด๋Ÿฌ์Šคํ„ฐ๋งต(clustermap)์€ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ํžˆํŠธ๋งต๊ณผ ๊ณ„์ธต์  ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ๊ฒฐํ•ฉํ•œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. Seaborn์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋งต์„ ๊ทธ๋ฆฌ๋ ค๋ฉด `clustermap()` ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. `clustermap()` ํ•จ์ˆ˜์—๋Š” `heatmap()` ํ•จ์ˆ˜์™€ ๋‹ฌ๋ฆฌ `standard_sacle` ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ์–ด ํด๋Ÿฌ์Šคํ„ฐ๋งต์˜ ๋ฒ”์œ„๋ฅผ 0~1๋กœ ์ •๊ทœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythoncorr = df_wines.corr()sns.clustermap(corr,cmap='coolwarm',standard_scale=1) ``` ![clustermap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ƒ๊ด€ํ–‰๋ ฌ ํด๋Ÿฌ์Šคํ„ฐ๋งต](https://www.snugarchive.com/static/c46bbd37bff118399dee83e5fe2d6e37/43ae9/bnd-clustermap-basic-wines.jpg) clustermap() ํ•จ์ˆ˜๋กœ ๊ทธ๋ฆฐ ์ƒ๊ด€ํ–‰๋ ฌ ํด๋Ÿฌ์Šคํ„ฐ๋งต ### 6\) ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ Seaborn์œผ๋กœ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด `regplot()` ๋˜๋Š” `lmplot()`์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋จผ์ € `regplot()` ์‚ฌ์šฉ๋ฒ•๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #### regplot `regplot()` ํ•จ์ˆ˜๋Š” ์‚ฐ์ ๋„์™€ ์„ ํ˜• ํšŒ๊ท€์„ (linear regression line)์„ ํ•จ๊ป˜ ๊ทธ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์„ ํ˜• ํšŒ๊ท€์„  ์ฃผ๋ณ€ ์Œ์˜์€ ์‹ ๋ขฐ๊ตฌ๊ฐ„(95%)์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ``` pythonsns.regplot(x='bill_length_mm', y='bill_depth_mm',data=df_penguins) ``` ![regplot()์œผ๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/2e81aea63e6c4c03a4d3173486ecfe17/5f636/bnd-regplot-basic-penguins.jpg) regplot()์œผ๋กœ ๊ทธ๋ฆฐ ๊ธฐ๋ณธ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ ์—ฌ๊ธฐ์— `lowess=True` ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ํšŒ๊ท€์„ ์„ ์„ ํ˜•์ด ์•„๋‹ˆ๋ผ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์— ๊ฐ€์ค‘์น˜๋ฅผ ๋†’์ด๋Š” ๊ตญ์†Œ ํšŒ๊ท€(local regression) ๊ธฐ๋ฒ•์œผ๋กœ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. `lowess`๋Š” `locally weighted robust scatterplot smoothing`์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. ``` pythonsns.regplot(x='bill_length_mm', y='bill_depth_mm',lowess=True,data=df_penguins) ``` ![๊ตญ์†Œ ํšŒ๊ท€ ๊ธฐ๋ฒ•์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/0c45e8aefae5adf5bda7f442d4bd4ea4/11810/bnd-regplot-options-lowess-penguins.jpg) ๊ตญ์†Œ ํšŒ๊ท€ ๊ธฐ๋ฒ•์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ > - scatter\_kws: ์  ์ƒ‰์ƒ(facecolor, fc), ์  ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ(edgecolor, ec), ํฌ๊ธฐ(size, s), ํˆฌ๋ช…๋„ ์ง€์ • > - color: ์„  ์ƒ‰์ƒ ์ง€์ • > - line\_kws: ์„  ๊ตต๊ธฐ(linewidth, lw), ์„  ์Šคํƒ€์ผ(line style, ls), ํˆฌ๋ช…๋„ ์ง€์ • > - ci: ์‹ ๋ขฐ๊ตฌ๊ฐ„ ์ง€์ •(๊ธฐ๋ณธ๊ฐ’: 95) ``` pythonsns.regplot(x='bill_length_mm', y='bill_depth_mm',scatter_kws={'fc':'gray', 'ec':'gray', 's':50, 'alpha':0.3},color='r',line_kws={'lw':1.5, 'ls':'--','alpha':0.5},ci=90,data=df_penguins) ``` ![๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/e5e7ee37e9a63d14e8590027c2787c7e/570db/bnd-regplot-options-penguins.jpg) ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ ์šฉํ•œ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„ #### lmplot `lmplot()` ์—ญ์‹œ `regplot()`๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, `lmplot()`์€ ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€(figure-level) ํ•จ์ˆ˜๋กœ `FacetGrid`๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. `lmplot()`์€ ๊ทธ๋ž˜ํ”„ ์ˆ˜์ค€ ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— `regplot()`์—์„œ์™€ ๋‹ฌ๋ฆฌ `hue` ๋˜๋Š” `col`์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` pythonsns.lmplot(x='bill_length_mm', y='bill_depth_mm',hue='species',data=df_penguins)sns.lmplot(x='bill_length_mm', y='bill_depth_mm',col='species',data=df_penguins) ``` ![lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„1](https://www.snugarchive.com/static/b5c00c089b557b71dc0c4909f1c8a6a7/09894/bnd-lmplot-basic-penguins.jpg) lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„1 ์ „์ฒด ๋ฐ์ดํ„ฐํฌ์ธํŠธ๋ฅผ ๋ฐฐ๊ฒฝ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. > - truncate=False: ํšŒ๊ท€์„  x์ถ• ๋๊นŒ์ง€ ํ‘œํ˜„ํ•˜์ง€ ์•Š๊ธฐ > - facet\_kws=dict(sharex=False, sharey=False): x์ถ•, y์ถ• ๊ณต์œ ํ•˜์ง€ ์•Š๊ธฐ > - line\_kws: ํšŒ๊ท€์„  ์Šคํƒ€์ผ ์ง€์ •ํ•˜๊ธฐ > - scatter\_kws: ์‚ฐ์ ๋„ ์  ์Šคํƒ€์ผ ์ง€์ •ํ•˜๊ธฐ ``` pythong = sns.lmplot(x='bill_length_mm', y='bill_depth_mm',col='species', row='sex',height=4,truncate=False,line_kws={'color':'steelblue','linestyle':'--' },data=df_penguins)axes = g.axesfor ax in axes.ravel():sns.regplot(x='bill_length_mm', y='bill_depth_mm',fit_reg=False,scatter_kws={'fc':'gray', 'ec':'none', 's':30, 'alpha':0.3},ax=ax,data=df_penguins) ``` ![lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„2](https://www.snugarchive.com/static/cd212fd2b88b02a52d22f6f238d403be/270d4/bnd-lmplot-options-penguins.jpg) lmplot()์œผ๋กœ ๊ทธ๋ฆฐ ํšŒ๊ท€ ๊ทธ๋ž˜ํ”„2 #### residplot `resideplot()`์€ ์‹ค์ œ ๋ฐ์ดํ„ฐํฌ์ธํŠธ์™€ ํšŒ๊ท€์„ ๊ณผ์˜ ์ž”์ฐจ(residuals)๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ``` pythonsns.residplot(x='bill_length_mm', y='bill_depth_mm',lowess=True,data=df_penguins) ``` ![resideplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ž”์ฐจ ๊ทธ๋ž˜ํ”„](https://www.snugarchive.com/static/adc72889ac9e87dec51553f6492becc9/097e7/bnd-residplot-penguins.jpg) resideplot()์œผ๋กœ ๊ทธ๋ฆฐ ์ž”์ฐจ ๊ทธ๋ž˜ํ”„ ์ง€๊ธˆ๊นŒ์ง€ Seaborn์œผ๋กœ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ์ˆ˜๊ณ  ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค. ## ์ฐธ๊ณ  ๋ฌธํ—Œ - \[1\] ๋‹คํฌํ”„๋กœ๊ทธ๋ž˜๋จธ, ๏ฝขKernel Density Estimation(์ปค๋„๋ฐ€๋„์ถ”์ •)์— ๋Œ€ํ•œ ์ดํ•ด๏ฝฃ, ๋‹คํฌํ”„๋กœ๊ทธ๋ž˜๋จธ, "<https://darkpgmr.tistory.com/147>" - \[2\] ์ด์ œํ˜„, ๏ฝขseaborn regplot vs lmplot๏ฝฃ, Pega Devlog, "<https://jehyunlee.github.io/2022/06/06/Python-DS-103-snsreglmplot/>" - \[3\] Dipanjan (DJ) Sarkar, ๏ฝขThe Art of Effective Visualization of Multi-dimensional Data๏ฝฃ, Towards Data Science, "<https://towardsdatascience.com/the-art-of-effective-visualization-of-multi-dimensional-data-6c7202990c57>" - \[4\] Rfriend, ๏ฝข\[Python\] ๋ชจ์ž์ดํฌ ๊ทธ๋ž˜ํ”„ (Mosaic Chart)๏ฝฃ, Rfriend, "<https://rfriend.tistory.com/418>" - \[5\] Seaborn, ๏ฝขseaborn.histplot๏ฝฃ, Seaborn, "<https://seaborn.pydata.org/generated/seaborn.histplot.html>" - \[6\] Seaborn, ๏ฝขseaborn.jointplot๏ฝฃ, Seaborn, "<https://seaborn.pydata.org/generated/seaborn.jointplot.html>" - \[7\] Seaborn, ๏ฝขseaborn.pairplot๏ฝฃ, Seaborn, "<https://seaborn.pydata.org/generated/seaborn.pairplot.html>" - \[8\] Statsmodels, ๏ฝขstatsmodels.graphics.mosaicplot.mosaic๏ฝฃ, Statsmodels, "<https://www.statsmodels.org/dev/generated/statsmodels.graphics.mosaicplot.mosaic.html>" ์ด์ „ ๊ธ€๋‹ค์Œ ๊ธ€
Shard185 (laksa)
Root Hash15688750957463538185
Unparsed URLcom,snugarchive!www,/blog/python-data-visualization-seaborn-advanced/ s443