Plotly Legend 설정하기

Author

Gabriel Yang

Plotly에서 Legend Style 설정하기

데이터 시각화에서 레전드는 각 데이터 시리즈의 의미를 쉽게 이해할 수 있도록 도와주는 중요한 요소입니다. Plotly는 강력한 시각화 도구로, 레전드를 생성하고 위치를 조정하는 다양한 옵션을 제공합니다.

1. Plotly에서 기본 레전드 생성하기

Plotly에서는 기본적으로 그래프에 레전드가 자동으로 생성됩니다. 레전드는 그래프의 각 데이터 시리즈에 대한 설명을 제공합니다. 기본 설정에서는 레전드가 자동으로 위치에 배치되며, 이 위치는 사용자에 의해 조정할 수 있습니다.

기본 레전드 생성 예제

다음 예제에서는 간단한 선 그래프를 생성하고 기본 레전드가 어떻게 자동으로 생성되는지 보여줍니다.

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 1'))

# 두 번째 선 그래프 추가
fig.add_trace(go.Scatter(x=x, y=y2, mode='lines', name='Line Plot 2'))

# 그래프 레이아웃 업데이트
fig.update_layout(title='Basic Line Plot with Legend')

# 그래프 출력
fig.show()

이 예제에서는 두 개의 선 그래프를 추가하고, Plotly가 자동으로 레전드를 생성하여 각 선 그래프의 이름을 레전드에 표시합니다.

2. 레전드 위치 조정하기

Plotly에서는 레전드의 위치를 다양한 옵션으로 조정할 수 있습니다. update_layout 메서드의 legend 속성을 사용하여 레전드의 위치와 모양을 조정할 수 있습니다.

레전드 위치 조정 예제

다음 예제에서는 레전드의 위치를 그래프의 왼쪽 하단으로 조정합니다.

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 1'))

# 두 번째 선 그래프 추가
fig.add_trace(go.Scatter(x=x, y=y2, mode='lines', name='Line Plot 2'))

# 레전드 위치를 오른쪽 상단으로 조정
fig.update_layout(
    title='Line Plot with Custom Legend Position',
    legend=dict(
        x=0, # x축 위치 (0=왼쪽, 1=오른쪽)
        y=-0.1, # y축 위치 (0=하단, 1=상단)
        xanchor='left', # 레전드의 x축 앵커
        yanchor='top' # 레전드의 y축 앵커
    )
)

# 그래프 출력
fig.show()

코드 설명

  • xy: 레전드의 X 및 Y 위치를 설정합니다. y는 -값을 설정하여 그래프 바깥에 위치합니다 x=0은 레전드가 그래프의 왼쪽에 위치하도록 합니다.
  • xanchor: 레전드의 X축 앵커를 설정합니다. left, center, right 값 중 하나를 사용할 수 있습니다.
  • yanchor: 레전드의 Y축 앵커를 설정합니다. top, middle, bottom 값 중 하나를 사용할 수 있습니다.

3. 레전드의 모양과 스타일 조정하기

Plotly에서는 레전드의 모양과 스타일도 조정할 수 있습니다. 예를 들어, 레전드의 글꼴 크기, 색상, 테두리 등을 설정할 수 있습니다.

레전드 스타일 조정 예제

다음 예제에서는 레전드의 글꼴 크기와 색상, 테두리 색상을 조정합니다.

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 1'))

# 두 번째 선 그래프 추가
fig.add_trace(go.Scatter(x=x, y=y2, mode='lines', name='Line Plot 2'))

# 레전드 스타일 조정
fig.update_layout(
    title='Styled Line Plot with Custom Legend',
    legend=dict(
        x=0.5,
        y=0.5,
        xanchor='center',
        yanchor='middle',
        font=dict(
            family="Arial",
            size=12,
            color="blue"
        ),
        bordercolor="Black",
        borderwidth=2
    )
)

# 그래프 출력
fig.show()

코드 설명

  • font: 레전드의 글꼴 스타일을 설정합니다. family, size, color를 통해 글꼴의 종류, 크기, 색상을 설정할 수 있습니다.
  • bordercolor: 레전드의 테두리 색상을 설정합니다.
  • borderwidth: 레전드의 테두리 두께를 설정합니다.

결론

Plotly에서 레전드를 생성하고 그 위치를 조정하는 방법은 데이터 시각화를 보다 효과적으로 만드는 데 중요한 역할을 합니다. 기본적인 레전드 생성 외에도, 레전드의 위치와 스타일을 조정하여 그래프의 가독성을 높이고, 필요한 정보를 명확히 전달할 수 있습니다. Plotly의 다양한 설정을 활용하여 데이터 시각화를 더욱 풍부하고 효과적으로 만들어 보세요!