๐ ํ์ด์ฌ ์๊ฐํ ์ฝ๋ 10๋ถ ์์ฑ ๋น๋ฒ
์๋ ํ์ธ์! ๐ ๋ฐ์ดํฐ ๋ถ์๊ณผ ์๊ฐํ์ ์ธ๊ณ์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ์ค๋์ ํ์ด์ฌ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ 10๋ถ ์์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆด๊ฒ์. ๐ ๋ฐ์ดํฐ ์๊ฐํ๋ ๋ณต์กํ ์ ๋ณด๋ฅผ ํ๋์ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ๋ง์ ์ฌ๋๋ค์ด ์ ์ฉํ๋ ๊ธฐ์ ์ด๋๋๋ค. ๊ทธ๋ผ ์์ํด๋ณผ๊น์? ๐
๐ค ๋ฐ์ดํฐ ์๊ฐํ๋?
๋ฐ์ดํฐ ์๊ฐํ(Data Visualization)๋ ๋ณต์กํ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ํฝ ํํ๋ก ๋ณํํ์ฌ ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ๋๋ ๊ธฐ๋ฒ์ ๋๋ค. ๐ ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๋ฅผ ๋ง๋ ๊ทธ๋ํ, ์ํ ๊ทธ๋ํ, ์ฐ์ ๋ ๋ฑ์ ํํ๋ก ๋ณด์ฌ์ค์ผ๋ก์จ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ์ ๋ฌํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์๊ฐํ์ ์ฑ๊ณต ์ฌ๋ถ๋ ์๊ฐํ ๊ธฐ์ ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์, ์ค๋ ๋ฐฐ์ธ ํ์ด์ฌ ์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Matplotlib๊ณผ Seaborn์ด ๋งค์ฐ ์ ์ฉํฉ๋๋ค! ๐ช
๐ ํ์ ์ค๋น๋ฌผ ์ฒดํฌ๋ฆฌ์คํธ
์๊ฐํ๋ฅผ ์์ํ๊ธฐ ์ ์ ํ์ํ ๊ฒ๋ค์ ์ฒดํฌํด๋ณผ๊น์? โ
- ํ์ด์ฌ ์ค์น (Python Installation): Anaconda ๋๋ Python.org์์ ํ์ด์ฌ ๋ค์ด๋ก๋ ๋ฐ ์ค์นํ๊ธฐ
- ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น:
bash
pip install matplotlib seaborn - ๋ฐ์ดํฐ ์ธํธ ์ค๋น: ์ฌ์ฉํ ๋ฐ์ดํฐ ํ์ผ(CSV, Excel ๋ฑ) ์ค๋นํ๊ธฐ
๐ 1๋จ๊ณ: Matplotlib์ผ๋ก ๊ธฐ๋ณธ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
Matplotlib๋ ๊ฐ์ฅ ์ ๋ช ํ ํ์ด์ฌ ์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋์ ๋๋ค. ๐ฅ ์๋๋ ๊ธฐ๋ณธ์ ์ธ ์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๋ ์์ ์ฝ๋์ ๋๋ค.
python
import matplotlib.pyplot as plt
๋ฐ์ดํฐ ์ค๋น
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 50]
์ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
plt.plot(x, y, marker='o')
plt.title('์์ ์ ๊ทธ๋ํ')
plt.xlabel('X ์ถ')
plt.ylabel('Y ์ถ')
plt.grid(True)
plt.show()
โ ์ค์ํคํฌ์ธํธ
marker='o'
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ํฌ์ธํธ๋ฅผ ๊ฐ์กฐplt.grid(True)
๋ก ๊ทธ๋ฆฌ๋๋ฅผ ์ถ๊ฐํ์ฌ ๊ฐ๋ ์ฑ ํฅ์!
๐ 2๋จ๊ณ: Seaborn์ผ๋ก ๊ณ ๊ธ ์๊ฐํ
Seaborn์ Matplotlib์ ๊ธฐ๋ฅ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋์ฑ ์ธ๋ จ๋๊ณ ์๋ฆ๋ค์ด ๊ทธ๋ํ๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๊ฒ ๋์์ค๋๋ค. ๐จ
๐ ์ฐ์ ๋ ์์
python
import seaborn as sns
import pandas as pd
๋ฐ์ดํฐ ์ค๋น (์: iris ๋ฐ์ดํฐ ์ธํธ)
iris = sns.load_dataset('iris')
์ฐ์ ๋ ๊ทธ๋ฆฌ๊ธฐ
sns.scatterplot(data=iris, x='sepal_length', y='sepal_width', hue='species', style='species')
plt.title('์์ด๋ฆฌ์ค ๊ฝ์ ์ฐ์ ๋')
plt.show()
โญ ๋
ธํธ: hue
์ style
์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์๊ณผ ์คํ์ผ๋ก ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
๐ 3๋จ๊ณ: ๋ฐ์ดํฐ ํ์์ ์ํ ๋ค์ํ ๊ทธ๋ํ
๋ค์ํ ๊ทธ๋ํ ํ์ ์ด ํ์ํ ๋, Seaborn์ ์ฌ๋ฌ๊ฐ์ง ์ ์ฉํ ์๊ฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋๋ ์ ์ฉํ ๊ทธ๋ํ ํ์ ์ ์๊ฐํด๋๋ฆฝ๋๋ค.
1. ๋ง๋ ๊ทธ๋ํ (Bar Plot)
python
sns.barplot(data=iris, x='species', y='sepal_length')
plt.title('์ข
๋ณ ์ธํ ๊ธธ์ด ํ๊ท ')
plt.show()
2. ๋ฐ์ค ๊ทธ๋ํ (Box Plot)
python
sns.boxplot(data=iris, x='species', y='sepal_length')
plt.title('์ข
๋ณ ์ธํ ๊ธธ์ด ๋ฐ์คํ๋กฏ')
plt.show()
3. ํํธ๋งต (Heatmap)
python
correlation = iris.corr()
sns.heatmap(correlation, annot=True)
plt.title('์๊ด ํํธ๋งต')
plt.show()
๐ก 4๋จ๊ณ: ๊ทธ๋ํ ๊พธ๋ฏธ๊ธฐ ํ
์๊ฐํ๋ฅผ ๋์ฑ ๋๋ณด์ด๊ฒ ํ๋ ค๋ฉด ๊พธ๋ฏธ๊ธฐ๋ฅผ ์ ๊ฒฝ ์จ์ผ ํด์! ๐ ์ฌ๊ธฐ ์ฐธ๊ณ ํ ๋งํ ํ๋ค์ ์๋ ค๋๋ฆด๊ฒ์.
- ์์ ๋ณ๊ฒฝ: ๋ค์ํ ์์ ํ๋ ํธ๋ฅผ ํ์ฉํ์ฌ ์ ๋ณด ์ ๋ฌ๋ ฅ์ ๋์ด์ธ์. ๐
palette
์ต์ ์ ํตํด ๋ค์ํ ํ ๋ง๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค.
- ํฐํธ ์กฐ์ : ๊ทธ๋ํ ์ ๋ชฉ, ์ถ ๋ ์ด๋ธ์ ์ ์ ํ ํฐํธ๋ฅผ ์ฌ์ฉํ์ธ์.
python
plt.title('์ ๋ชฉ', fontsize=20, fontweight='bold')
- ์ฌ์ง ์คํ์ผ: ๊ทธ๋ํ์ ์คํ์ผ์ ๋งค๋ ฅ์ ์ผ๋ก ๋ฐ๊พธ๋ ค๋ฉด:
python
sns.set(style="whitegrid")
๐ ๊ฒฐ๋ก ๋ฐ ๋ค์ ๋จ๊ณ
์, ์ด์ ํ์ด์ฌ์ ๊ฐ๋ ฅํ ์๊ฐํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค! ๐ ๋ค์์ ์ฌ๋ฌ๋ถ์ด ์๋ํ ์ ์๋ ๋ช ๊ฐ์ง ์ ์ ์ฌํญ์ ๋๋ค:
- ์ง์ CSV ํ์ผ์ ๋ค์ด๋ก๋ํ๊ณ ๋ค์ํ ๊ทธ๋ํ๋ฅผ ์๋ํด ๋ณด์ธ์. ๐
- ์จ๋ผ์ธ ๋ฐ์ดํฐ ์๊ฐํ ์ปค๋ฎค๋ํฐ์ ์ฐธ์ฌํ์ฌ ํผ๋๋ฐฑ์ ๋ฐ์๋ณด์ธ์. ๐ค
- ๋ฉ์ง ๋ฐ์ดํฐ ์คํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด ์น์ฌ์ดํธ๋ ๋ธ๋ก๊ทธ์ ๊ณต์ ํด ๋ณด์ธ์! ๐
โ ์ฃผ์ ํฌ์ธํธ ์์ฝ ์ฒดํฌ๋ฆฌ์คํธ
- ๋ฐ์ดํฐ ์๊ฐํ์ ์ค์์ฑ ์ดํดํ๊ธฐ
- Matplotlib๊ณผ Seaborn ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ ์ตํ๊ธฐ
- ๋ค์ํ ๊ทธ๋ํ ์ข ๋ฅ์ ๊พธ๋ฏธ๊ธฐ ๋ฐฉ๋ฒ ๋ฐฐ์ฐ๊ธฐ
์ด์ ์ฌ๋ฌ๋ถ๋ 10๋ถ ์์ ๋ฉ์ง ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ๋ง๋ค์ด๋ผ ์ ์๊ฒ ์ฃ ? โจ ๋ฐ์ดํฐ ์๊ฐํ์ ์ธ๊ณ์์ ์ฆ๊ฑฐ์ด ์๊ฐ์ ๋ณด๋ด์๊ธธ ๋ฐ๋๋๋ค! ๐