import plotly.graph_objs as go
# 데이터 정의
x = [1, 2, 3, 4, 5]
y1 = [10, 15, 13, 17, 16]
y2 = [5, 7, 3, 8, 6]
# 그래프 생성
fig = go.Figure()
# 선 그래프 추가
fig.add_trace(go.Scatter(x=x, y=y1, mode='lines', name='Line Plot'))
# 막대 그래프 추가
fig.add_trace(go.Bar(x=x, y=y2, name='Bar Plot'))
# 그래프 레이아웃 업데이트
fig.update_layout(title='Line and Bar Plot Together',
xaxis_title='X Axis',
yaxis_title='Y Axis')
# 그래프 출력
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
# 데이터 정의
x = [1, 2, 3, 4, 5]
y1 = [10, 15, 13, 17, 16]
y2 = [2, 4, 6, 8, 10]
# 그래프 생성
fig = go.Figure()
# 선 그래프 추가
fig.add_trace(go.Scatter(x=x, y=y1, mode='lines', name='Line Plot'))
# 스캐터 플롯 추가
fig.add_trace(go.Scatter(x=x, y=y2, mode='markers', name='Scatter Plot'))
# 그래프 레이아웃 업데이트
fig.update_layout(title='Line Plot and Scatter Plot Together',
xaxis_title='X Axis',
yaxis_title='Y Axis')
# 그래프 출력
fig.show()코드 설명
mode='lines'와 mode='markers'
mode='lines'는 선 그래프를 생성하며,mode='markers'는 점으로 데이터를 표현하는 스캐터 플롯을 생성합니다.서로 다른 시각화 방식을 같은 X축에서 표현합니다.
3. 두 개의 Y축을 사용하는 경우: 선 그래프와 막대 그래프
하나의 그래프에 두 개의 차트를 표시하면서 서로 다른 Y축을 사용하는 경우, 다음과 같은 방법으로 구현할 수 있습니다.
import plotly.graph_objs as go
# 데이터 정의
x = [1, 2, 3, 4, 5]
y1 = [10, 15, 13, 17, 16]
y2 = [50, 40, 30, 20, 10]
# 그래프 생성
fig = go.Figure()
# 첫 번째 Y축에 대한 선 그래프 추가
fig.add_trace(go.Scatter(x=x, y=y1, mode='lines', name='Line Plot', yaxis='y1'))
# 두 번째 Y축에 대한 막대 그래프 추가
fig.add_trace(go.Bar(x=x, y=y2, name='Bar Plot', yaxis='y2'))
# 그래프 레이아웃 업데이트 (두 개의 Y축 설정)
fig.update_layout(
title='Line Plot and Bar Plot with Two Y-Axes',
xaxis_title='X Axis',
yaxis_title='Primary Y Axis',
yaxis2=dict(
title='Secondary Y Axis',
overlaying='y',
side='right'
)
)
# 그래프 출력
fig.show()코드 설명
yaxis='y1'와 yaxis='y2'
- 각 차트에 대해 Y축을 다르게 지정합니다.
yaxis2 설정
yaxis2를 설정하여 두 번째 Y축을 정의하고, 기본 Y축(y)과 함께 표시하도록 설정합니다.overlaying='y'속성은 두 번째 Y축이 첫 번째 Y축과 겹치도록 만듭니다.side='right'속성은 두 번째 Y축을 그래프의 오른쪽에 배치합니다.
결론
Plotly에서는 다양한 시각화 방법을 통해 하나의 그래프에 여러 개의 차트를 함께 표현할 수 있습니다. 선 그래프와 막대 그래프, 스캐터 플롯 등 다양한 차트 유형을 조합하여 복잡한 데이터를 효과적으로 시각화할 수 있습니다.
또한, 서로 다른 Y축을 사용하여 데이터의 차원을 보다 명확하게 비교할 수 있습니다.