import plotly.graph_objs as go
import plotly.io as pio
# 간단한 데이터
= [1, 2, 3, 4, 5]
x = [10, 15, 13, 17, 22]
y
# 그래프 객체 생성
= go.Figure()
fig
fig.add_trace(=x, y=y, mode='lines', name='선 그래프')
go.Scatter(x
)
fig.update_layout(='기본 선 그래프',
title=dict(title='X 축 제목'),
xaxis=dict(title='Y 축 제목')
yaxis
)
fig.show()
그래프 모양 꾸미기
Plotly에서 레이아웃 설정하는 방법
그래프의 시각적 요소를 조정하여 더욱 멋지고 이해하기 쉬운 시각화를 만들기 위해 레이아웃을 설정하는 방법이 중요합니다. 이 글에서는 Plotly에서 레이아웃을 설정하는 방법을 다양한 예시와 함께 알아보겠습니다.
1. Plotly 기본 그래프 생성
먼저, Plotly로 간단한 그래프를 생성해보겠습니다. 아래 코드는 기본적인 선형 그래프를 생성합니다.
위 코드에서는 go.Layout
객체를 사용하여 그래프의 기본 레이아웃을 설정합니다. title
, xaxis
, yaxis
등의 속성을 사용해 그래프의 제목과 축 레이블을 설정할 수 있습니다.
fig.update_layout
함수는 Plotly에서 그래프의 레이아웃 속성을 쉽게 업데이트할 수 있는 매우 유용한 방법입니다.
이 함수는 기존의 레이아웃 속성에 새로운 값을 추가하거나, 기존 값을 변경하는 데 사용됩니다. go.Layout 객체를 생성하고 그것을 go.Figure 객체에 전달하는 방법 대신, fig.update_layout을 사용하면 보다 간단하게 레이아웃을 조정할 수 있습니다.
2. Plotly 그래프 속성
Plotly의 레이아웃에는 다양한 속성을 설정할 수 있습니다. 대표적인 속성들을 예시와 함께 살펴보겠습니다.
2.1 그래프 제목 및 축 제목 설정
그래프와 축에 제목을 추가하는 방법은 간단합니다. 다음 예시는 그래프와 축에 제목을 추가하는 방법을 보여줍니다.
= go.Figure()
fig
fig.add_trace(=x, y=y, mode='lines', name='선 그래프')
go.Scatter(x
)
fig.update_layout(='커스텀 선 그래프', # 그래프 제목
title=dict(title='시간(초)'), # X축 제목
xaxis=dict(title='거리(m)') # Y축 제목
yaxis
) fig.show()
2.2. 그래프의 폰트 크기 설정
font: 그래프의 폰트 스타일을 설정합니다. 이 예시에서는 폰트 크기를 18로 설정했습니다.
= go.Figure()
fig
fig.add_trace(=x, y=y, mode='lines', name='선 그래프')
go.Scatter(x
)
fig.update_layout(='커스텀 선 그래프', # 그래프 제목
title=dict(title='시간(초)'), # X축 제목
xaxis=dict(title='거리(m)'), # Y축 제목
yaxis=dict(size=18), # 폰트 크기 설정
font
) fig.show()
2.3 그리드 설정
축의 그리드 라인은 gridcolor
와 gridwidth
속성을 사용하여 설정할 수 있습니다.
= go.Figure()
fig
fig.add_trace(=x, y=y, mode='lines', name='선 그래프')
go.Scatter(x
)
fig.update_layout(='그리드 라인 설정',
title=dict(
xaxis='X 축',
title='lightblue', # X축 그리드 라인 색상
gridcolor=2 # X축 그리드 라인 두께
gridwidth
),=dict(
yaxis='Y 축',
title='lightgreen', # Y축 그리드 라인 색상
gridcolor=2 # Y축 그리드 라인 두께
gridwidth
),='lightblue' # 전체 배경색
paper_bgcolor
) fig.show()
2.4 범례 설정
범례는 legend
속성을 사용하여 위치 및 스타일을 조정할 수 있습니다.
= go.Figure()
fig
fig.add_trace(=x, y=y, mode='lines', name='선 그래프')
go.Scatter(x
)
fig.update_layout(='범례 위치 설정',
title=dict(
legend=0.1, # 범례의 X 위치 (0: 왼쪽, 1: 오른쪽)
x=0.9, # 범례의 Y 위치 (0: 아래, 1: 위)
y='rgba(255,255,255,0.5)', # 범례 배경색 (반투명)
bgcolor='black', # 범례 테두리 색상
bordercolor=2 # 범례 테두리 두께
borderwidth
)
) fig.show()
2.5 여백 설정
그래프 주변의 여백은 margin
속성을 사용하여 조정할 수 있습니다.
= go.Figure()
fig
fig.add_trace(=x, y=y, mode='lines', name='선 그래프')
go.Scatter(x
)
fig.update_layout(='그래프 여백 설정',
title=dict(
margin=200, # 왼쪽 여백
l=200, # 오른쪽 여백
r=200, # 위쪽 여백
t=200 # 아래쪽 여백
b
)
) fig.show()
2.6 그래프 크기 조정
그래프의 크기는 width
와 height
속성을 사용하여 설정할 수 있습니다.
= go.Figure()
fig
fig.add_trace(=x, y=y, mode='lines', name='선 그래프')
go.Scatter(x
)
fig.update_layout(='그래프 크기 조정',
title=500, # 그래프 너비
width=300 # 그래프 높이
height
) fig.show()
2.7 배경색 설정
그래프의 배경색은 plot_bgcolor
와 paper_bgcolor
속성을 사용하여 설정할 수 있습니다.
plot_bgcolor
: 그래프 그리드 영역의 배경색paper_bgcolor
: 전체 그래프의 배경색
= go.Figure()
fig
fig.add_trace(=x, y=y, mode='lines', name='선 그래프')
go.Scatter(x
)
fig.update_layout(='배경색 설정',
title='rgba(0,0,0,0)', # 그래프 그리드 배경색 (투명)
plot_bgcolor='lightgrey' # 전체 배경색
paper_bgcolor
) fig.show()
plotly에서는 다양한 색상 옵션을 제공하여 그래프의 시각적 요소를 커스터마이즈할 수 있습니다.
이 색상들은 개별 요소의 색상 설정뿐만 아니라, 색상 스케일, 색상 연속체 등 다양한 용도로 사용됩니다. 다음은 plotly에서 사용할 수 있는 색상 옵션들에 대한 정보입니다.
plotly는 CSS 색상 이름을 지원합니다. 약 140여 가지의 색상 이름을 사용할 수 있습니다. 대표적인 색상 이름은 다음과 같습니다:
아래는 plotly
에서 사용 가능한 색상 옵션을 정리한 표입니다.
색상 옵션 종류 | 설명 | 예시 |
---|---|---|
기본 색상 이름 (Named Colors) | CSS에서 지원하는 기본 색상 이름을 사용할 수 있습니다. | 'red' , 'blue' , 'green' |
Hex 코드 (Hexadecimal Colors) | 16진수 색상 코드를 사용해 색상을 지정합니다. | '#FF5733' (오렌지색) |
RGB 색상 (RGB Colors) | RGB 값을 사용해 색상을 지정합니다. | 'rgb(255, 87, 51)' (오렌지색) |
RGBA 색상 (RGBA Colors) | RGBA 값을 사용해 색상을 지정하며, 불투명도를 추가로 설정할 수 있습니다. | 'rgba(255, 87, 51, 0.5)' (50% 투명) |
컬러 스케일 (Color Scales) | 데이터를 기준으로 색상을 자동으로 지정하며, 연속형, 순차적, 발산형 컬러 스케일을 제공합니다. | 'Viridis' , 'Cividis' , 'Plasma' |
기본 팔레트 (Default Palette) | plotly 에서 여러 시각 요소에 자동으로 적용되는 기본 색상 팔레트를 제공합니다. |
'#1f77b4' , '#ff7f0e' , '#2ca02c' |
이 표는 plotly
에서 다양한 색상 설정 옵션을 한눈에 볼 수 있도록 정리한 것입니다. 각 색상 옵션에 따라 그래프의 시각적 스타일을 자유롭게 커스터마이즈할 수 있습니다.
Named Colors는 CSS 표준에서 정의된 색상 이름을 사용하여 색상을 지정할 수 있는 방법입니다. plotly는 이러한 색상 이름을 모두 지원합니다. 아래는 주요 Named Colors의 목록입니다.
Named Colors
는 CSS 표준에서 정의된 색상 이름을 사용하여 색상을 지정할 수 있는 방법입니다. plotly
는 이러한 색상 이름을 모두 지원합니다. 아래는 주요 Named Colors
의 목록입니다.
기본 색상
색상 이름 | 색상 | Hex 코드 |
---|---|---|
Black | #000000 |
|
White | #FFFFFF |
|
Red | #FF0000 |
|
Lime | #00FF00 |
|
Blue | #0000FF |
|
Yellow | #FFFF00 |
|
Cyan | #00FFFF |
|
Magenta | #FF00FF |
|
Silver | #C0C0C0 |
|
Gray | #808080 |
|
Maroon | #800000 |
|
Olive | #808000 |
|
Green | #008000 |
|
Purple | #800080 |
|
Teal | #008080 |
|
Navy | #000080 |
추가 색상
색상 이름 | 색상 | Hex 코드 |
---|---|---|
Orange | #FFA500 |
|
Gold | #FFD700 |
|
Pink | #FFC0CB |
|
Coral | #FF7F50 |
|
Indigo | #4B0082 |
|
Violet | #EE82EE |
|
LightGreen | #90EE90 |
|
DarkGreen | #006400 |
|
LightBlue | #ADD8E6 |
|
DarkBlue | #00008B |
|
LightGray | #D3D3D3 |
|
DarkGray | #A9A9A9 |
|
Chocolate | #D2691E |
|
Salmon | #FA8072 |
|
Khaki | #F0E68C |
기타 색상
plotly
는 CSS에서 정의된 약 140개의 색상 이름을 모두 지원합니다. 전체 목록은 W3Schools Named Colors와 같은 사이트에서 확인할 수 있습니다. 이를 통해 plotly
에서 다양한 색상을 쉽게 지정하고 사용할 수 있습니다.
3. 예시: 복합 레이아웃 설정
위에서 배운 내용을 종합하여, 다양한 레이아웃 설정을 적용한 예시를 만들어 보겠습니다.
= go.Figure()
fig
fig.add_trace(=x, y=y, mode='lines', name='선 그래프')
go.Scatter(x
)
fig.update_layout(='종합 레이아웃 설정 예시',
title=800,
width=600,
height='rgba(240,240,240,1)',
plot_bgcolor='lightyellow',
paper_bgcolor=dict(
xaxis='X 축 제목',
title='lightblue',
gridcolor=2
gridwidth
),=dict(
yaxis='Y 축 제목',
title='lightgreen',
gridcolor=2
gridwidth
),=dict(
legend=0.1,
x=0.9,
y='rgba(255,255,255,0.5)',
bgcolor='black',
bordercolor=2
borderwidth
),=dict(
margin=60,
l=60,
r=120,
t=60
b
)
)
# 그래프 생성
fig.show()
이 코드는 다양한 레이아웃 설정을 적용하여, 더욱 맞춤화된 그래프를 생성합니다.
마무리
Plotly에서 레이아웃 설정은 시각화의 가독성과 미적 감각을 높이는 데 매우 중요한 요소입니다. 이 글에서는 기본적인 레이아웃 설정부터 배경색, 그리드, 범례, 여백 조정에 이르기까지 다양한 방법을 살펴보았습니다.