import plotly.graph_objs as go
# 데이터 생성
= [1, 2, 3, 4, 5]
x_data = [10, 14, 12, 18, 16]
y_data
# 산점도 객체 생성
= go.Figure()
fig
fig.add_trace(
go.Scatter(=x_data,
x=y_data,
y='markers'
mode
)
)
# 레이아웃 설정
fig.update_layout(='기본 산점도',
title=dict(
xaxis='X축 라벨'
title
),=dict(
yaxis='Y축 라벨'
title
)
)
# 그래프 출력
fig.show()
Plotly에서 축 설정하기
Plotly는 Python에서 인터랙티브한 그래프를 쉽게 만들 수 있는 강력한 도구입니다.
그래프를 만들 때 축의 설정과 라벨링은 데이터를 이해하기 쉽게 시각화하는 데 매우 중요합니다.
이 블로그 글에서는 Plotly에서 축을 설정하고 라벨을 붙이는 방법을 예시와 함께 자세히 설명하겠습니다.
Plotly에서 축 설정하기
데이터 시각화에서 축 설정과 라벨링은 그래프의 가독성을 높이는 중요한 요소입니다. Plotly를 사용하면 그래프의 각 축을 쉽게 커스터마이징할 수 있습니다.
이 글에서는 plotly.graph_objs
라이브러리를 사용해 간단한 산점도를 만들고, 축의 범위, 라벨, 틱(tick) 등을 설정하는 방법을 단계별로 설명하겠습니다.
1. 기본 산점도 만들기
먼저, Plotly를 사용해 간단한 산점도를 만들어보겠습니다.
위 코드는 기본적인 산점도를 생성합니다. 이제 이 그래프에 축 설정과 라벨링을 추가해보겠습니다.
2. 축 범위 설정하기
축의 범위를 직접 설정하고 싶을 때는 range
속성을 사용하면 됩니다.
fig.update_layout(='기본 산점도',
title=dict(
xaxis='X축 라벨',
titlerange=[0, 6] # X축 범위 설정
),=dict(
yaxis='Y축 라벨',
titlerange=[8, 20] # Y축 범위 설정
)
)
# 그래프 출력
fig.show()
위 코드에서는 X축의 범위를 [0, 6]
, Y축의 범위를 [8, 20]
으로 설정했습니다. x축과 y축의 범위가 지정되면서 데이터의 시각화 범위가 결정됩니다.
3. 틱 설정하기
축에 표시되는 틱(tick)은 데이터의 세부 정보를 제공하는 데 도움이 됩니다. Plotly에서는 tickvals
, ticktext
, dtick
등을 사용해 틱을 세밀하게 조정할 수 있습니다.
fig.update_layout(='기본 산점도',
title=dict(
xaxis='X축 라벨',
title=[1, 2, 3, 4, 5], # X축 틱 값
tickvals=['A', 'B', 'C', 'D', 'E'], # X축 틱 라벨
ticktext=1 # X축 틱 간격
dtick
),=dict(
yaxis='Y축 라벨',
title=1 # Y축 틱 간격
dtick
)
) fig.show()
위 코드에서는 X축의 틱 값을 [1, 2, 3, 4, 5]
로 설정하고, 각 틱에 대응하는 라벨을 ['A', 'B', 'C', 'D', 'E']
로 지정했습니다. Y축의 틱 간격은 1
로 설정했습니다.
4. 로그 스케일 적용하기
데이터의 범위가 클 때는 로그 스케일을 사용하여 축을 설정할 수 있습니다.
import plotly.graph_objects as go
import numpy as np
# 예제 데이터 생성
= np.logspace(0.1, 2, 100)
x = np.exp(x / 50)
y
# 그래프 생성
= go.Figure()
fig
# 선 그래프 추가
=x, y=y, mode='markers', name='Exponential Growth'))
fig.add_trace(go.Scatter(x
# 로그 스케일 적용
fig.update_layout(='Logarithmic Scale Example',
title='X Axis (Log Scale)',
xaxis_title='Y Axis',
yaxis_title='log',
xaxis_type='log'
yaxis_type
)
# 그래프 출력
fig.show()
위 코드에서는 X축과 Y축 모두에 로그 스케일을 적용했습니다.
데이터 생성
x = np.logspace(0.1, 2, 100): 0.1부터 2까지의 범위에서 로그 스케일로 100개의 값을 생성합니다.
y = np.exp(x / 50): 지수 함수적 관계를 갖는 y 값을 생성합니다.
그래프 생성
go.Figure(): Plotly의 Figure 객체를 생성합니다.
fig.add_trace(go.Scatter(…)): 선 그래프를 추가합니다. 로그 스케일 적용:
xaxis_type=‘log’와 yaxis_type=’log’: x축과 y축에 로그 스케일을 적용합니다.
그래프 출력
- fig.show(): 인터랙티브한 그래프를 웹 브라우저에서 표시합니다.
5. 축 레이블 회전 및 서식 설정
축 레이블을 회전하거나 서식을 조정하면 가독성을 높일 수 있습니다. tickangle 속성을 사용하여 틱 레이블의 회전을 설정할 수 있습니다.
# 데이터 생성
= [1, 2, 3, 4, 5]
x_data = [10, 14, 12, 18, 16]
y_data
# 산점도 객체 생성
= go.Figure()
fig
fig.add_trace(
go.Scatter(=x_data,
x=y_data,
y='markers'
mode
)
)
fig.update_layout(='산점도 with 축 방향 및 그리드선 설정',
title=dict(
xaxis='X축 라벨',
title=-45 # X축 틱 레이블 회전
tickangle
),=dict(
yaxis='Y축 라벨',
title=-45 # X축 틱 레이블 회전
tickangle
)
) fig.show()
6. 축의 날짜 스케일 설정
이 코드에서는 X축에 날짜 형식을 적용하여 시간의 흐름에 따라 데이터를 시각화했습니다.
import pandas as pd
import numpy as np
# 날짜 데이터 생성
= pd.date_range(start='2023-01-01', periods=5)
dates = np.random.randint(1, 10, size=5)
values
# 산점도 객체 생성
= go.Figure()
fig
fig.add_trace(
go.Scatter(=dates,
x=values,
y='markers'
mode
)
)
fig.update_layout(='산점도 with 날짜 형식',
title=dict(
xaxis='날짜',
titletype='date' # X축 날짜 형식 적용
),=dict(
yaxis='값'
title
)
)
fig.show()
7. 틱, 제목 폰트 설정
tickfont, titlefont 등의 속성을 사용하여 스타일을 설정할 수 있습니다.
fig.update_layout(='산점도 with 날짜 형식',
title=dict(
xaxis='날짜',
title=dict(size=14, color='blue'), # 틱 폰트 설정
tickfont=dict(size=16, color='red') # 제목 폰트 설정
titlefont
),=dict(
yaxis='값',
title=dict(size=14, color='green'), # 틱 폰트 설정
tickfont=dict(size=16, color='purple') # 제목 폰트 설정
titlefont
)
) fig.show()
결론
Plotly에서는 축의 라벨, 범위, 틱, 스케일 등을 간단하게 설정할 수 있습니다. 이러한 기능을 통해 데이터 시각화를 보다 직관적으로 만들 수 있습니다.