import plotly.graph_objs as go
# 데이터 정의
= [1, 2, 3, 4, 5]
x = [10, 15, 13, 17, 16]
y1 = [5, 7, 3, 8, 6]
y2
# 그래프 생성
= go.Figure()
fig
# 선 그래프 추가
=x, y=y1, mode='lines', name='Line Plot'))
fig.add_trace(go.Scatter(x
# 막대 그래프 추가
=x, y=y2, name='Bar Plot'))
fig.add_trace(go.Bar(x
# 그래프 레이아웃 업데이트
='Line and Bar Plot Together',
fig.update_layout(title='X Axis',
xaxis_title='Y Axis')
yaxis_title
# 그래프 출력
fig.show()
여러 개의 차트를 겹쳐 그리기
Plotly에서 하나의 그래프에 여러 개의 차트를 함께 표현하는 방법
데이터 시각화는 복잡한 데이터를 직관적으로 이해하는 데 큰 도움을 줍니다. 때로는 하나의 그래프에 여러 개의 차트를 함께 표현하여 데이터를 보다 효율적으로 비교하고 분석하는 것이 유용할 수 있습니다.
Plotly는 이러한 작업을 쉽게 할 수 있는 다양한 기능을 제공합니다. 이번 블로그 글에서는 Plotly에서 하나의 그래프에 여러 개의 차트를 함께 표현하는 방법을 소개하겠습니다.
왜 하나의 그래프에 여러 개의 차트를 함께 표현할까?
여러 개의 차트를 하나의 그래프에 함께 표현하는 이유는 다음과 같습니다:
- 데이터 비교: 서로 다른 데이터 시리즈를 같은 축에 나란히 표시하여 비교할 수 있습니다.
- 다양한 시각화: 동일한 데이터에 대해 여러 시각화 방식을 사용하여 다양한 관점을 제공합니다.
- 간결한 시각화: 여러 차트를 하나의 그래프에 포함시켜 공간을 절약하고, 데이터 분석을 직관적으로 만들어 줍니다.
Plotly에서 여러 개의 차트를 하나의 그래프에 표현하기
Plotly에서는 go.Figure
를 사용하여 하나의 그래프에 여러 개의 차트를 추가할 수 있습니다. 이를 통해 다양한 데이터 시리즈를 하나의 시각적 컨텍스트에서 표현할 수 있습니다.
1. 기본적인 예제: 선 그래프와 막대 그래프 함께 표시하기
다음은 Plotly를 사용하여 하나의 그래프에 선 그래프와 막대 그래프를 함께 표시하는 방법입니다.
코드 설명
go.Figure()
- 빈 그래프 객체를 생성합니다.
add_trace()
첫 번째
add_trace()
호출에서는 선 그래프(Scatter
)를 추가합니다.두 번째
add_trace()
호출에서는 막대 그래프(Bar
)를 추가합니다.두 차트는 같은 X축을 공유하며, 두 개의 데이터 시리즈를 하나의 그래프에 시각화합니다.
update_layout()
- 그래프의 제목과 X, Y축 레이블을 설정합니다.
2. 다양한 시각화 방법 사용하기: 선 그래프와 스캐터 플롯
이제, 선 그래프와 스캐터 플롯을 하나의 그래프에 함께 표시해 보겠습니다.
import plotly.graph_objs as go
# 데이터 정의
= [1, 2, 3, 4, 5]
x = [10, 15, 13, 17, 16]
y1 = [2, 4, 6, 8, 10]
y2
# 그래프 생성
= go.Figure()
fig
# 선 그래프 추가
=x, y=y1, mode='lines', name='Line Plot'))
fig.add_trace(go.Scatter(x
# 스캐터 플롯 추가
=x, y=y2, mode='markers', name='Scatter Plot'))
fig.add_trace(go.Scatter(x
# 그래프 레이아웃 업데이트
='Line Plot and Scatter Plot Together',
fig.update_layout(title='X Axis',
xaxis_title='Y Axis')
yaxis_title
# 그래프 출력
fig.show()
코드 설명
mode='lines'
와 mode='markers'
mode='lines'
는 선 그래프를 생성하며,mode='markers'
는 점으로 데이터를 표현하는 스캐터 플롯을 생성합니다.서로 다른 시각화 방식을 같은 X축에서 표현합니다.
3. 두 개의 Y축을 사용하는 경우: 선 그래프와 막대 그래프
하나의 그래프에 두 개의 차트를 표시하면서 서로 다른 Y축을 사용하는 경우, 다음과 같은 방법으로 구현할 수 있습니다.
import plotly.graph_objs as go
# 데이터 정의
= [1, 2, 3, 4, 5]
x = [10, 15, 13, 17, 16]
y1 = [50, 40, 30, 20, 10]
y2
# 그래프 생성
= go.Figure()
fig
# 첫 번째 Y축에 대한 선 그래프 추가
=x, y=y1, mode='lines', name='Line Plot', yaxis='y1'))
fig.add_trace(go.Scatter(x
# 두 번째 Y축에 대한 막대 그래프 추가
=x, y=y2, name='Bar Plot', yaxis='y2'))
fig.add_trace(go.Bar(x
# 그래프 레이아웃 업데이트 (두 개의 Y축 설정)
fig.update_layout(='Line Plot and Bar Plot with Two Y-Axes',
title='X Axis',
xaxis_title='Primary Y Axis',
yaxis_title=dict(
yaxis2='Secondary Y Axis',
title='y',
overlaying='right'
side
)
)
# 그래프 출력
fig.show()
코드 설명
yaxis='y1'
와 yaxis='y2'
- 각 차트에 대해 Y축을 다르게 지정합니다.
yaxis2
설정
yaxis2
를 설정하여 두 번째 Y축을 정의하고, 기본 Y축(y
)과 함께 표시하도록 설정합니다.overlaying='y'
속성은 두 번째 Y축이 첫 번째 Y축과 겹치도록 만듭니다.side='right'
속성은 두 번째 Y축을 그래프의 오른쪽에 배치합니다.
결론
Plotly에서는 다양한 시각화 방법을 통해 하나의 그래프에 여러 개의 차트를 함께 표현할 수 있습니다. 선 그래프와 막대 그래프, 스캐터 플롯 등 다양한 차트 유형을 조합하여 복잡한 데이터를 효과적으로 시각화할 수 있습니다.
또한, 서로 다른 Y축을 사용하여 데이터의 차원을 보다 명확하게 비교할 수 있습니다.