import plotly.graph_objects as go
# 기본 산점도 데이터 생성
= go.Figure(data=go.Scatter(x=[1, 2, 3, 4, 5], y=[10, 11, 12, 13, 14], mode='markers'))
fig
# 도형 추가
fig.add_shape(type='rect', # 도형의 종류
=2, x1=4, # x축의 시작과 끝
x0=11, y1=13, # y축의 시작과 끝
y0=dict(color='RoyalBlue', width=2), # 테두리 색상과 두께
line='LightSkyBlue', # 채우기 색상
fillcolor=0.3 # 투명도
opacity
)
# 그래프 출력
fig.show()
Plotly에서 도형(shape)을 그리기
Plotly에서 도형(shape)을 그리기
Plotly는 강력한 데이터 시각화 라이브러리로, 그래프에 다양한 도형을 추가하여 데이터를 시각적으로 강조할 수 있습니다.
도형을 사용하면 그래프의 특정 부분을 강조하거나, 중요한 데이터 포인트를 시각적으로 구분하는 데 유용합니다.
1. add_shape
메서드를 사용한 도형 추가
Plotly의 add_shape
메서드는 그래프에 다양한 형태의 도형을 추가할 수 있는 기능을 제공합니다. 도형의 종류에는 선, 사각형, 원, 타원 등이 있으며, 각 도형은 그래프의 특정 영역을 강조하는 데 사용됩니다.
기본 사용법
2. 다양한 도형 종류
Plotly에서 지원하는 도형 종류는 여러 가지가 있으며, 각각의 도형은 그래프에 특정한 형태로 표시됩니다.
2.1. 직선(Line)
직선은 type='line'
으로 설정합니다. 선의 시작점과 끝점을 정의할 수 있습니다.
= go.Figure(data=go.Scatter(x=[1, 2, 3, 4, 5], y=[10, 11, 12, 13, 14], mode='markers'))
fig
fig.add_shape(type='line',
=2, x1=4,
x0=12, y1=12,
y0=dict(color='Red', width=2)
line
)
fig.show()
2.2. 사각형(Rectangle)
사각형은 type='rect'
으로 설정하며, 좌표로 영역을 정의합니다.
= go.Figure(data=go.Scatter(x=[1, 2, 3, 4, 5], y=[10, 11, 12, 13, 14], mode='markers'))
fig
fig.add_shape(type='rect',
=1, x1=5,
x0=10, y1=15,
y0='LightGreen',
fillcolor=0.3
opacity
)
fig.show()
2.3. 원(Circle) 및 타원(Ellipse)
원과 타원은 type='circle'
또는 type='ellipse'
로 설정할 수 있습니다. Plotly에서는 원과 타원을 도형으로 직접 지원하지 않지만, add_shape
를 사용하여 타원 모양의 도형을 만들 수 있습니다.
= go.Figure(data=go.Scatter(x=[1, 2, 3, 4, 5], y=[10, 11, 12, 13, 14], mode='markers'))
fig
fig.add_shape(type='circle', # Plotly에서 직접 지원하지 않지만 예제
=2, x1=4,
x0=11, y1=13,
y0='LightCoral',
fillcolor=0.3
opacity
)
fig.show()
3. 도형의 스타일 조정
도형의 스타일은 line
과 fillcolor
파라미터를 통해 조정할 수 있습니다.
line
: 테두리의 색상, 두께, 스타일(dash) 등을 설정합니다.fillcolor
: 도형의 채우기 색상입니다. RGBA 값을 사용하여 색상과 투명도를 조절할 수 있습니다.opacity
: 도형의 투명도를 설정합니다.
스타일 예제
= go.Figure(data=go.Scatter(x=[1, 2, 3, 4, 5], y=[10, 11, 12, 13, 14], mode='markers'))
fig
fig.add_shape(type='rect',
=1, x1=4,
x0=10, y1=15,
y0=dict(color='Orange', width=3, dash='dash'),
line='LightPink',
fillcolor=0.4
opacity
)
fig.show()
4. 도형의 레이아웃 조정
도형의 레이아웃을 조정하여 그래프의 레이아웃과 일관성을 유지할 수 있습니다. xaxis
, yaxis
의 범위와 도형의 크기, 위치를 조절하여 그래프의 디자인을 개선할 수 있습니다.
레이아웃 조정 예제
fig.update_layout(=dict(
xaxisrange=[0, 6] # x축 범위 조정
),=dict(
yaxisrange=[5, 20] # y축 범위 조정
) )
5. 도형을 활용한 데이터 강조
도형을 사용하여 데이터의 특정 범위나 중요 포인트를 강조할 수 있습니다. 예를 들어, 특정 날짜 범위에 대한 강조나, 특정 값 이상을 시각적으로 구분할 수 있습니다.
데이터 강조 예제
import plotly.express as px
# 샘플 데이터 생성
= px.data.gapminder().query("continent == 'Oceania'")
df
# 기본 선 그래프 생성
= px.line(df, x='year', y='pop', color='country')
fig
# 특정 날짜 범위 강조
fig.add_shape(type='rect',
=1970, x1=1975,
x0=2000000, y1=15000000,
y0=dict(color='red', width=3, dash='dash'),
line='LightSalmon',
fillcolor=0.2
opacity
)
fig.show()
6. 결론
Plotly에서 도형을 추가하면 데이터 시각화의 효과를 극대화하고, 데이터의 중요한 부분을 강조할 수 있습니다.
add_shape
메서드를 활용하여 직선, 사각형, 원(타원) 등의 도형을 추가할 수 있으며, 도형의 스타일과 레이아웃을 조정하여 그래프를 보다 명확하게 표현할 수 있습니다.
이 기능을 통해 데이터의 특정 부분을 시각적으로 강조하고, 분석의 인사이트를 더욱 명확히 전달할 수 있습니다.