< ๊ธฐ๋ณธ ๊ทธ๋ํ >
< 1. Line Plot >
sns.lineplot
์ฐ์ํ ๋ฐ์ดํฐ
๋ฐ์ดํฐ์ ๋ณํ ๋ฐ ์ถ์ด๋ฅผ ์๊ฐํ
์์: ์ฃผ์ ๊ฐ๊ฒฉ ๋ณ๋, ์จ๋ ๋ณํ, ํ๋งค ์ถ์ด ๋ฑ.
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# ์์ ๋ฐ์ดํฐ ์์ฑ
data = {'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
'Sales': [200, 300, 400, 350, 500, 600]}
df = pd.DataFrame(data)
# Line Plot ์์ฑ
sns.lineplot(data=df, x='Month', y='Sales')
# ๊ทธ๋ํ ์ ๋ชฉ๊ณผ ์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.title('Monthly Sales')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.show()
[ ๊ฒฐ๊ณผ ]
< 2. Bar Plot >
sns.barplot
๋ฒ์ฃผํ ๋ฐ์ดํฐ
๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ์ฌ ๊ฐ ์นดํ
๊ณ ๋ฆฌ ๋ณ ๊ฐ์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํฉ๋๋ค.
์์: ๊ฐ ๊ณผ๋ชฉ๋ณ ํ์ ์, ์ ํ๋ณ ๋งค์ถ ๋ฑ.
# ์์ ๋ฐ์ดํฐ ์์ฑ
data = {'Category': ['A', 'B', 'C', 'D'],
'Value': [10, 20, 15, 25]}
df = pd.DataFrame(data)
# Bar Plot ์์ฑ
sns.barplot(data=df, x='Category', y='Value')
# ๊ทธ๋ํ ์ ๋ชฉ๊ณผ ์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.title('Value by Category')
plt.xlabel('Category')
plt.ylabel('Value')
plt.show()
< 3. Histogram >
sns.histplot
์ฐ์ํ ๋ฐ์ดํฐ
์ฐ์ํ ๋ฐ์ดํฐ์ ๋ถํฌ๋ฅผ ์๊ฐํํ์ฌ ๋น๋์ ํจํด์ ์ดํดํฉ๋๋ค.
์์: ์ํ ์ ์ ๋ถํฌ, ์ฐ๋ น ๋ถํฌ ๋ฑ.
import numpy as np
# ์์ ๋ฐ์ดํฐ ์์ฑ
data = np.random.normal(loc=50, scale=10, size=1000)
# Histogram ์์ฑ
sns.histplot(data, bins=20, color='blue', edgecolor='black')
# ๊ทธ๋ํ ์ ๋ชฉ๊ณผ ์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.title('Distribution of Scores')
plt.xlabel('Score')
plt.ylabel('Frequency')
plt.show()
[ ๊ฒฐ๊ณผ ]
data = np.random.normal(loc=50, scale=10, size=1000)
# 1. np.random.normal ํจ์
์ด ํจ์๋ ์ ๊ท๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋ ๋์๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
loc: ํ๊ท (mean)
๋ฐ์ดํฐ์ ์ค์ฌ๊ฐ์ ์ง์ ํฉ๋๋ค.
์ด ์์ ์์๋ loc=50์ด๋ฏ๋ก, ์์ฑ๋ ๋ฐ์ดํฐ์ ํ๊ท ์ 50์
๋๋ค.
scale: ํ์คํธ์ฐจ (standard deviation)
๋ฐ์ดํฐ์ ํฉ์ด์ง ์ ๋๋ฅผ ์ง์ ํฉ๋๋ค.
์ด ์์ ์์๋ scale=10์ด๋ฏ๋ก, ์์ฑ๋ ๋ฐ์ดํฐ์ ํ์คํธ์ฐจ๋ 10์
๋๋ค.
size: ์์ฑํ ๋์์ ๊ฐ์
๋ช ๊ฐ์ ๋์๋ฅผ ์์ฑํ ์ง ์ง์ ํฉ๋๋ค.
์ด ์์ ์์๋ size=1000์ด๋ฏ๋ก, 1000๊ฐ์ ๋์๋ฅผ ์์ฑํฉ๋๋ค.
# 2. sns.histplot ํจ์
์ด ํจ์๋ ํ์คํ ๊ทธ๋จ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
data: ์๊ฐํํ ๋ฐ์ดํฐ
ํ์คํ ๊ทธ๋จ์ ํ์ํ ๋ฐ์ดํฐ ๋ฐฐ์ด์ ์ง์ ํฉ๋๋ค.
์ด ์์ ์์๋ data ๋ณ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
bins: ๊ตฌ๊ฐ ์ (bins)
๋ฐ์ดํฐ๋ฅผ ๋๋ ๊ตฌ๊ฐ์ ์๋ฅผ ์ง์ ํฉ๋๋ค.
์ด ์์ ์์๋ bins=20์ด๋ฏ๋ก, ๋ฐ์ดํฐ๋ 20๊ฐ์ ๊ตฌ๊ฐ์ผ๋ก ๋๋ฉ๋๋ค.
color: ํ์คํ ๊ทธ๋จ ๋ง๋์ ์์
ํ์คํ ๊ทธ๋จ ๋ง๋์ ์์์ ์ง์ ํฉ๋๋ค.
์ด ์์ ์์๋ color='blue'์ด๋ฏ๋ก, ๋ง๋๋ ํ๋์์ผ๋ก ํ์๋ฉ๋๋ค.
edgecolor: ๋ง๋์ ํ
๋๋ฆฌ ์์
ํ์คํ ๊ทธ๋จ ๋ง๋์ ํ
๋๋ฆฌ ์์์ ์ง์ ํฉ๋๋ค.
์ด ์์ ์์๋ edgecolor='black'์ด๋ฏ๋ก, ๋ง๋์ ํ
๋๋ฆฌ๋ ๊ฒ์์์ผ๋ก ํ์๋ฉ๋๋ค.
< 4. Box Plot >
sns.boxplot
์ฐ์ํ ๋ฐ์ดํฐ์ ๋ถํฌ
์ฐ์ํ ๋ฐ์ดํฐ์ ๋ถํฌ๋ฅผ ์๊ฐํํ์ฌ ์ค์๊ฐ, ์ฌ๋ถ์์, ์ต์๊ฐ, ์ต๋๊ฐ, ์ด์์น๋ฅผ ํ์ธํฉ๋๋ค.
์์: ๋ค์ํ ๊ทธ๋ฃน์ ์ํ ์ ์ ๋ถํฌ, ์ฐ๋ น ๋ถํฌ ๋ฑ.
data = {'Group': ['A'] * 50 + ['B'] * 50,
'Value': np.random.normal(50, 10, 50).tolist() + np.random.normal(60, 15, 50).tolist()}
df = pd.DataFrame(data)
df
sns.boxplot(data=df, x='Group', y='Value')
plt.title('Box Plot')
plt.xlabel('Group')
plt.ylabel('Value')
plt.show()
[ ๊ฒฐ๊ณผ ]
< 5. Scatter Plot >
sns.scatterplot
๋ ๋ณ์ ๊ฐ ๊ด๊ณ
๋ ๋ณ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ์๊ฐํํ์ฌ ๋ณ์ ๊ฐ์ ๊ด๊ณ, ๊ตฐ์ง, ์ด์์น๋ฅผ ํ์ธํฉ๋๋ค.
์์: ํค์ ๋ชธ๋ฌด๊ฒ, ์จ๋์ ์์ด์คํฌ๋ฆผ ํ๋งค๋ ๋ฑ.
data = {'Height': np.random.normal(170, 10, 100),
'Weight': np.random.normal(65, 15, 100)}
df = pd.DataFrame(data)
df
sns.scatterplot(data=df, x='Height', y='Weight')
plt.title('Height vs Weight')
plt.xlabel('Height')
plt.ylabel('Weight')
plt.show()
# Reference
https://archivenyc.tistory.com/88?category=1184232
[๋ฐ์ดํฐ ์๊ฐํ] ํ์ด์ฌ์ผ๋ก ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ : seaborn (1) ๊ธฐ๋ณธ ๊ทธ๋ํ
240516 Today I Learn๐ก Seaborn ์๊ฐํ๋ฅผ ์ํ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๋ก, matplotlib์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ฐ์ดํฐ ์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๋ฐ์ดํฐ ์ ํ์ ๋ฐ๋ฅธ Seaborn ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตฌ๋ถ ๊ทธ๋ํ ์ ํํจ์
archivenyc.tistory.com