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 책을 참조하였습니다.

댓글