import plotly.graph_objects as go
import numpy as np
# 샘플 데이터 생성
0)
np.random.seed(= np.random.rand(10, 10) # 10x10 행렬 데이터 생성
z
# Heatmap 생성
= go.Figure(data=go.Heatmap(z=z, colorscale='Viridis'))
fig
# 그래프 출력
fig.show()
Plotly Heatmap 만들기
Heatmap은 데이터의 패턴이나 분포를 시각적으로 표현하는 데 유용한 도구입니다. 데이터의 강도나 밀도를 색상으로 나타내어, 복잡한 데이터의 관계를 직관적으로 파악할 수 있습니다.
Plotly를 사용하면 인터랙티브하고 아름다운 Heatmap을 쉽게 만들 수 있습니다. 이 블로그 글에서는 Plotly를 이용해 Heatmap을 만드는 방법과, Heatmap에 적합한 데이터 유형에 대해 설명하겠습니다.
1. Heatmap에 적합한 데이터 유형
Heatmap은 주로 다음과 같은 데이터 유형에서 유용하게 사용됩니다:
- 행렬 데이터: 데이터가 두 개의 범주형 변수(예: 시간과 장소, 제품과 고객 등)를 기준으로 배열된 경우. 예를 들어, 매출 데이터가 월과 지역별로 배열된 경우.
- 시계열 데이터: 시간에 따른 데이터의 변화가 두 개의 변수로 나누어져 있는 경우. 예를 들어, 월별 온도 변화가 여러 지역에서 측정된 경우.
- 밀도 데이터: 두 개의 연속형 변수 간의 밀도 분포를 나타내는 경우. 예를 들어, 인구 밀도나 특정 행동의 빈도.
2. Plotly를 사용한 Heatmap 생성
Plotly는 Heatmap을 만들기 위한 plotly.graph_objects
와 plotly.express
모듈을 제공합니다. 이 두 가지 방법 모두 다양한 스타일과 옵션을 지원하여 인터랙티브한 Heatmap을 생성할 수 있습니다.
2.1. plotly.graph_objects
를 사용한 Heatmap
plotly.graph_objects
모듈을 사용하면 더 세밀한 조정이 가능하며, Heatmap의 속성들을 개별적으로 설정할 수 있습니다.
기본 Heatmap
z
: Heatmap의 데이터. 이 배열의 각 값이 색상으로 매핑됩니다.colorscale
: 색상 스케일을 설정합니다.'Viridis'
,'Cividis'
,'Blues'
등 다양한 옵션이 있습니다.
축 레이블과 색상바 추가
import plotly.graph_objects as go
import numpy as np
# 샘플 데이터 생성
0)
np.random.seed(= np.random.rand(10, 10)
z = [f'X{i}' for i in range(10)]
x = [f'Y{i}' for i in range(10)]
y
# Heatmap 생성
= go.Figure(data=go.Heatmap(z=z, x=x, y=y, colorscale='Blues'))
fig
# 레이아웃 업데이트
fig.update_layout(='Sample Heatmap',
title='X Axis Label',
xaxis_title='Y Axis Label',
yaxis_title
)
# 그래프 출력
fig.show()
x
: x축의 레이블을 설정합니다.y
: y축의 레이블을 설정합니다.coloraxis_colorbar
: 색상바의 제목을 설정합니다.
2.2. plotly.express
를 사용한 Heatmap
plotly.express
는 간단한 API를 제공하며, 데이터프레임에서 Heatmap을 쉽게 생성할 수 있습니다.
데이터프레임을 사용한 Heatmap
import plotly.graph_objects as go
import pandas as pd
import numpy as np
# 샘플 데이터프레임 생성
0)
np.random.seed(= pd.DataFrame(np.random.rand(10, 10), columns=[f'Col{i}' for i in range(10)])
df
# Heatmap 데이터 준비
= df.values
heatmap_data = df.columns
x_labels = df.index
y_labels
# Heatmap 생성
= go.Figure(data=go.Heatmap(z=heatmap_data,
fig =x_labels,
x=y_labels,))
y
# 그래프 레이아웃 업데이트
='Heatmap using plotly.graph_objects',
fig.update_layout(title='Features',
xaxis_title='Samples')
yaxis_title
# 그래프 출력
fig.show()
px.imshow
: DataFrame 또는 2D 배열을 사용하여 Heatmap을 생성합니다.color_continuous_scale
: 색상 스케일을 설정합니다.
색상 스케일의 기본 개념
Plotly에서 Heatmap의 색상 스케일(colorscale)은 데이터의 값에 색상을 매핑하여 시각적으로 표현합니다.
Heatmap에서는 이 색상 스케일을 사용하여 데이터의 값을 시각적으로 인식할 수 있습니다.Plotly는 다음과 같은 색상 스케일을 지원합니다:
- Viridis:
viridis
- Magma:
magma
- Inferno:
inferno
- Plasma:
plasma
- Cividis:
cividis
- Blues:
Blues
- Greens:
Greens
- Reds:
Reds
- YlOrBr:
YlOrBr
- YlOrRd:
YlOrRd
- Oranges:
Oranges
- Purples:
Purples
- Greys:
Greys
- Jet:
Jet
- Hot:
Hot
# Heatmap 생성
= go.Figure(data=go.Heatmap(z=heatmap_data,
fig =x_labels,
x=y_labels,
y='Greens',
colorscale=dict(title='Intensity')))
colorbar
# 그래프 출력
fig.show()
3. Heatmap의 활용 예시
- 데이터 분석: 다양한 변수 간의 상관관계나 패턴을 시각적으로 분석할 때.
- 비즈니스 인사이트: 매출, 고객 행동 등의 데이터를 시간과 지역별로 분석하여 인사이트를 도출할 때.
- 기술적 시각화: 실험 결과, 센서 데이터 등의 밀도를 시각적으로 표현할 때.
4. 결론
Plotly를 사용하면 Heatmap을 매우 간편하게 생성하고, 다양한 데이터 유형을 시각화할 수 있습니다. plotly.graph_objects
와 plotly.express
모듈을 활용하여, 데이터의 패턴과 관계를 효과적으로 시각화하고 분석할 수 있습니다.
데이터의 강도나 밀도를 색상으로 표현하여, 복잡한 정보를 직관적으로 파악할 수 있게 해줍니다.