์๊ฐํ
Matplotlib, Seaborn, Plotly๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ์๊ฐํ ๋ ์ํผ ๋ชจ์์ ๋๋ค. ๊ธฐ๋ณธ ์ฐจํธ๋ถํฐ ์ธํฐ๋ํฐ๋ธ ๋์๋ณด๋๊น์ง ๋ค์ํ ์๊ฐํ ๊ธฐ๋ฒ์ ํ์ตํฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋น๊ต
| ๋ผ์ด๋ธ๋ฌ๋ฆฌ | ํน์ง | ์ฌ์ฉ ์์ |
|---|---|---|
| Matplotlib | ๊ธฐ๋ณธ, ์ธ๋ฐํ ์ปค์คํฐ๋ง์ด์ง | ๋ ผ๋ฌธ, ๋ณด๊ณ ์์ฉ ์ ์ ์ฐจํธ |
| Seaborn | ํต๊ณ ์๊ฐํ ํนํ, ์์ ๊ธฐ๋ณธ ์คํ์ผ | EDA, ๋ถํฌ/์๊ด๊ด๊ณ ๋ถ์ |
| Plotly | ์ธํฐ๋ํฐ๋ธ, ์น ๊ธฐ๋ฐ | ๋์๋ณด๋, ํ๋ ์ ํ ์ด์ |
| Altair | ์ ์ธ์ ๋ฌธ๋ฒ, ๊ฐ๊ฒฐํจ | ๋น ๋ฅธ ํ์์ ๋ถ์ |
์ปค๋ฆฌํ๋ผ
1. ๊ธฐ๋ณธ ์ฐจํธ
์ด๊ธ๋ง๋ ๊ทธ๋ํ, ๋ผ์ธ ์ฐจํธ, ์ฐ์ ๋ ๋ฑ ๊ธฐ๋ณธ์ ์ธ ์ฐจํธ๋ฅผ ํ์ตํฉ๋๋ค.
- ๋ง๋ ๊ทธ๋ํ (Bar Chart)
- ๋ผ์ธ ์ฐจํธ (Line Chart)
- ์ฐ์ ๋ (Scatter Plot)
- ํ์ด ์ฐจํธ (Pie Chart)
- ํ์คํ ๊ทธ๋จ (Histogram)
๊ธฐ๋ณธ ์ฐจํธ ์์ํ๊ธฐ โ
2. ํํธ๋งต
์ค๊ธ์๊ด๊ด๊ณ, ์๊ฐ๋๋ณ ํจํด ๋ฑ์ ํํธ๋งต์ผ๋ก ์๊ฐํํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
- ์๊ด๊ด๊ณ ํํธ๋งต
- ์๊ฐ ร ์์ผ ํํธ๋งต (ํ๋ ํจํด)
- ํผ๋ฒ ํ ์ด๋ธ ๊ธฐ๋ฐ ํํธ๋งต
- ํด๋ฌ์คํฐ๋งต (Clustermap)
3. ํธ๋ฆฌ๋งต
์ค๊ธ๊ณ์ธต์ ๋ฐ์ดํฐ๋ฅผ ๋ฉด์ ์ผ๋ก ํํํ๋ ํธ๋ฆฌ๋งต์ ํ์ตํฉ๋๋ค.
- ์นดํ ๊ณ ๋ฆฌ๋ณ ๋งค์ถ ๋น์ค
- ๊ณ์ธต์ ๊ตฌ์กฐ ํํ (๋ถ์ > ํ > ์ ํ)
- ์์์ผ๋ก ์ฑ๊ณผ ํํ (์ฑ์ฅ๋ฅ ๋ฑ)
- Plotly์ Squarify ํ์ฉ
4. Sankey ๋ค์ด์ด๊ทธ๋จ
์ค๊ธ๊ณ ๊ธํ๋ฆ(flow)์ ์๊ฐํํ๋ Sankey ๋ค์ด์ด๊ทธ๋จ์ ํ์ตํฉ๋๋ค.
- ๋ง์ผํ ํผ๋ ์๊ฐํ
- ์ฑ๋๋ณ ์ ํ ํ๋ฆ
- ๊ณ ๊ฐ ์ฌ์ ๋ถ์
- ๋ ธ๋์ ๋งํฌ ๊ตฌ์ฑ
Sankey ๋ค์ด์ด๊ทธ๋จ ์์ํ๊ธฐ โ
5. ์ง๋ฆฌ ์๊ฐํ
์ค๊ธ๊ณ ๊ธ์ง๋ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์๊ฐํ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
- Folium์ผ๋ก ์ธํฐ๋ํฐ๋ธ ์ง๋
- Choropleth (๋จ๊ณ๊ตฌ๋ถ๋)
- ๋ง์ปค์ ํ์
- ์์น ๊ธฐ๋ฐ ํด๋ฌ์คํฐ๋ง
์ง๋ฆฌ ์๊ฐํ ์์ํ๊ธฐ โ
6. ์ ๋๋ฉ์ด์ ์ฐจํธ
๊ณ ๊ธ์๊ฐ์ ๋ฐ๋ฅธ ๋ณํ๋ฅผ ์ ๋๋ฉ์ด์ ์ผ๋ก ํํํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
- Matplotlib Animation
- Plotly Express ์ ๋๋ฉ์ด์
- ์๊ฐ์ ๋ฐ๋ฅธ ์์ ๋ณํ (Racing Bar Chart)
- GIF/MP4 ๋ด๋ณด๋ด๊ธฐ
์ ๋๋ฉ์ด์ ์ฐจํธ ์์ํ๊ธฐ โ
7. ์ธํฐ๋ํฐ๋ธ ๋์๋ณด๋
๊ณ ๊ธPlotly์ Streamlit์ ํ์ฉํ ์ธํฐ๋ํฐ๋ธ ๋์๋ณด๋ ๊ตฌ์ถ์ ํ์ตํฉ๋๋ค.
- Plotly Dash ๊ธฐ์ด
- Streamlit ๋์๋ณด๋
- ํํฐ์ ์ฝ๋ฐฑ
- ์ค์๊ฐ ๋ฐ์ดํฐ ์ฐ๋
์ฐจํธ ์ ํ ๊ฐ์ด๋
๋น๊ตํ ๋:
- ์นดํ ๊ณ ๋ฆฌ ๋น๊ต โ ๋ง๋ ๊ทธ๋ํ
- ์๊ฐ์ ๋ฐ๋ฅธ ๋ณํ โ ๋ผ์ธ ์ฐจํธ
- ์์ ๋น๊ต โ ์ํ ๋ง๋ ๊ทธ๋ํ
๋ถํฌ๋ฅผ ๋ณผ ๋:
- ๋จ์ผ ๋ณ์ ๋ถํฌ โ ํ์คํ ๊ทธ๋จ, ๋ฐ์คํ๋กฏ
- ๋ ๋ณ์ ๊ด๊ณ โ ์ฐ์ ๋
- ์๊ด๊ด๊ณ ํ๋ ฌ โ ํํธ๋งต
๊ตฌ์ฑ์ ๋ณผ ๋:
- ์ ์ฒด ๋๋น ๋น์ค โ ํ์ด ์ฐจํธ, ํธ๋ฆฌ๋งต
- ๋ถ๋ถ์ ํฉ โ ๋์ ๋ง๋ ๊ทธ๋ํ
- ํ๋ฆ/์ ํ โ Sankey ๋ค์ด์ด๊ทธ๋จ
์ง๋ฆฌ๋ฅผ ๋ณผ ๋:
- ์ง์ญ๋ณ ๊ฐ โ Choropleth
- ์์น ํ์ โ ๋ง์ปค ์ง๋
- ๋ฐ๋ โ ํํธ๋งต ์ง๋
๊ธฐ๋ณธ ์ค์ ์ฝ๋
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import plotly.graph_objects as go
# Matplotlib ํ๊ธ ํฐํธ ์ค์
plt.rcParams['font.family'] = 'AppleGothic' # macOS
# plt.rcParams['font.family'] = 'Malgun Gothic' # Windows
# plt.rcParams['font.family'] = 'NanumGothic' # Linux
plt.rcParams['axes.unicode_minus'] = False
# ๊ธฐ๋ณธ ์คํ์ผ ์ค์
plt.style.use('seaborn-v0_8-whitegrid')
sns.set_palette('husl')
plt.rcParams['figure.figsize'] = (12, 6)
# Plotly ๊ธฐ๋ณธ ํ
ํ๋ฆฟ
import plotly.io as pio
pio.templates.default = 'plotly_white'์์ ํ๋ ํธ ์ถ์ฒ
| ์ฉ๋ | ํ๋ ํธ | ์ฝ๋ |
|---|---|---|
| ๋ฒ์ฃผํ | tab10 | sns.color_palette('tab10') |
| ์์ฐจํ | Blues | sns.color_palette('Blues') |
| ๋ฐ์ฐํ | RdYlGn | sns.color_palette('RdYlGn') |
| ๊ฐ์กฐ | Set2 | sns.color_palette('Set2') |