16장: 고급 데이터 시각화
고급 데이터 시각화는 복잡한 데이터 집합을 이해하고 인사이트를 도출하는 데 도움이 됩니다. 이 장에서는 `matplotlib`, `seaborn`, `plotly`를 사용하여 다양한 고급 데이터 시각화 기법을 알아보겠습니다.
#### 16.1 `matplotlib` 고급 시각화
`matplotlib`은 강력한 커스터마이징 기능을 제공하여 고급 시각화를 가능하게 합니다.
##### 16.1.1 여러 그래프 그리기
여러 그래프를 한 Figure에 그리는 방법입니다.
```python
import matplotlib.pyplot as plt
# 데이터 생성
x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]
# Figure와 Axes 생성
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(x, y1, 'g-')
ax2.plot(x, y2, 'b-')
ax1.set_xlabel('X 데이터')
ax1.set_ylabel('Y1 데이터', color='g')
ax2.set_ylabel('Y2 데이터', color='b')
plt.show()
```
##### 16.1.2 3D 플롯
3D 플롯을 사용하여 데이터를 시각화할 수 있습니다.
```python
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 데이터 생성
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
# 3D 플롯 그리기
ax.plot_surface(x, y, z, cmap='viridis')
plt.show()
```
#### 16.2 `seaborn` 고급 시각화
`seaborn`은 통계적 데이터 시각화를 위한 고급 기능을 제공합니다.
##### 16.2.1 히트맵
히트맵(Heatmap)은 2차원 데이터를 색상으로 표현한 것입니다.
```python
import seaborn as sns
# 데이터 생성
data = np.random.rand(10, 12)
# 히트맵 그리기
sns.heatmap(data, annot=True, cmap='coolwarm')
plt.title('Seaborn 히트맵')
plt.show()
```
##### 16.2.2 페어플롯
페어플롯(Pairplot)은 변수 간의 관계를 시각화하는 데 유용합니다.
```python
# 데이터셋 로드
iris = sns.load_dataset('iris')
# 페어플롯 그리기
sns.pairplot(iris, hue='species')
plt.title('Iris 데이터셋 페어플롯')
plt.show()
```
##### 16.2.3 박스플롯
박스플롯(Boxplot)은 데이터의 분포를 시각화하는 데 사용됩니다.
```python
# 박스플롯 그리기
sns.boxplot(x='species', y='sepal_length', data=iris)
plt.title('Iris 데이터셋 박스플롯')
plt.show()
```
#### 16.3 `plotly` 고급 시각화
`plotly`는 대화형 데이터 시각화를 위한 라이브러리입니다. 먼저 `plotly` 라이브러리를 설치해야 합니다.
```sh
pip install plotly
```
##### 16.3.1 대화형 선 그래프
`plotly`를 사용하여 대화형 선 그래프를 그릴 수 있습니다.
```python
import plotly.graph_objects as go
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [10, 11, 12, 13, 14]
# 선 그래프 그리기
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines+markers'))
fig.update_layout(title='대화형 선 그래프')
fig.show()
```
##### 16.3.2 대화형 3D 플롯
`plotly`를 사용하여 대화형 3D 플롯을 그릴 수 있습니다.
```python
import numpy as np
import plotly.graph_objects as go
# 데이터 생성
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
# 3D 플롯 그리기
fig = go.Figure(data=[go.Surface(z=z, x=x, y=y)])
fig.update_layout(title='대화형 3D 플롯')
fig.show()
```
##### 16.3.3 대화형 히트맵
`plotly`를 사용하여 대화형 히트맵을 그릴 수 있습니다.
```python
# 데이터 생성
data = np.random.rand(10, 12)
# 히트맵 그리기
fig = go.Figure(data=go.Heatmap(z=data))
fig.update_layout(title='대화형 히트맵')
fig.show()
```
이상으로, 파이썬에서 고급 데이터 시각화를 수행하는 방법에 대해 알아보았습니다. 다음 장에서는 데이터베이스와 관련된 작업에 대해 더 자세히 알아보겠습니다. 질문이나 요청사항이 있으시면 댓글로 남겨주세요!
---
이 글의 내용은 GoalKicker.com의 Python Notes for Professionals 책을 참조하였습니다.
댓글
댓글 쓰기