Plotly 테마 적용하기

Author

Gabriel Yang


Plotly는 데이터 시각화의 강력한 도구로, 기본 설정만으로도 매우 아름다운 그래프를 생성할 수 있습니다. 그러나 때로는 그래프의 스타일을 변경하거나 특정 테마를 적용하여 더 일관된 디자인을 유지하고 싶을 때가 있습니다. Plotly는 이러한 요구를 충족시키기 위해 다양한 테마와 스타일을 제공합니다.

1. Plotly의 기본 테마 이해하기

Plotly는 기본적으로 흰색 배경에 깔끔한 스타일의 그래프를 제공합니다. 하지만, 여러 내장된 테마를 사용하여 그래프의 전체적인 외관을 쉽게 변경할 수 있습니다. 대표적인 기본 테마로는 plotly, ggplot2, seaborn, simple_white, plotly_dark, presentation 등이 있습니다.

2. 테마 설정 방법

Plotly에서 테마를 설정하는 것은 매우 간단합니다. 각 그래프의 layout 속성에서 template 옵션을 사용하여 원하는 테마를 지정할 수 있습니다. 예를 들어, plotly_dark 테마를 적용하려면 다음과 같이 설정합니다:

import plotly.graph_objects as go

fig = go.Figure()

# 데이터 추가
fig.add_trace(go.Scatter(
    x=[1, 2, 3, 4],
    y=[10, 11, 12, 13],
    mode='lines+markers'
))

# 테마 설정
fig.update_layout(template='plotly_dark')

fig.show()

위 코드에서는 plotly_dark 테마를 적용하여 어두운 배경의 그래프를 생성합니다.

3. Plotly의 내장 테마

Plotly에서 제공하는 주요 내장 테마는 다음과 같습니다:

  • plotly: 기본 Plotly 테마, 깔끔하고 미니멀한 스타일.
  • ggplot2: ggplot2의 스타일을 모방한 테마, 데이터 과학에서 자주 사용되는 시각적 스타일.
  • seaborn: Seaborn 라이브러리의 시각적 스타일을 반영한 테마.
  • simple_white: 최소한의 요소로 구성된 매우 간결한 흰색 배경 테마.
  • plotly_dark: 어두운 배경의 테마, 프레젠테이션 및 대시보드에 적합.
  • presentation: 프레젠테이션에 적합한 스타일로, 더 크고 선명한 텍스트를 특징으로 함.

이러한 테마를 활용하면 데이터를 강조하고, 특정 환경에 맞는 시각화를 쉽게 만들 수 있습니다.

4. 사용자 정의 테마 만들기

기본 제공 테마 외에도, 사용자 정의 테마를 만들어 그래프를 더욱 세밀하게 조정할 수 있습니다. 사용자 정의 테마는 go.layout.Template 객체를 사용하여 생성할 수 있습니다. 예를 들어, 다음과 같이 사용자 정의 테마를 만들어 보겠습니다:

import plotly.graph_objects as go

# 사용자 정의 테마 생성
custom_template = go.layout.Template(
    layout=go.Layout(
        font=dict(family="Arial", size=14, color="blue"),
        paper_bgcolor="lightgray",
        plot_bgcolor="white",
        xaxis=dict(showgrid=False),
        yaxis=dict(showgrid=False)
    )
)

fig = go.Figure()

# 데이터 추가
fig.add_trace(go.Bar(
    x=['A', 'B', 'C'],
    y=[10, 20, 15]
))

# 사용자 정의 테마 적용
fig.update_layout(template=custom_template)

fig.show()

이 예제에서는 다음과 같은 커스터마이징을 포함한 테마를 만들었습니다.

  • 글꼴: Arial 글꼴을 사용하고, 텍스트 색상을 파란색으로 설정.
  • 배경 색상: 차트 외부의 배경 색상을 연회색으로 설정.
  • 그리드 라인: x축과 y축의 그리드 라인을 숨김.

5. 기본 테마 변경하기

여러 번 사용해야 하는 특정 테마가 있다면, Plotly의 기본 설정을 변경하여 매번 테마를 지정할 필요 없이 해당 테마를 기본으로 사용할 수 있습니다. 기본 테마를 변경하려면 plotly.io 모듈을 사용하여 설정합니다.

import plotly.io as pio

# 기본 테마를 'plotly_dark'로 설정
pio.templates.default = 'plotly_dark'

# 이후에 생성되는 모든 그래프에 'plotly_dark' 테마가 적용됨
fig = go.Figure()
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[3, 1, 6]))
fig.show()

위 코드를 실행하면 모든 그래프에 plotly_dark 테마가 기본적으로 적용됩니다.

6. 테마 적용 예시

마지막으로, 다양한 테마를 적용하여 그래프가 어떻게 변하는지 살펴보겠습니다:

import plotly.graph_objects as go

fig = go.Figure(data=go.Bar(y=[2, 3, 1]))

# 기본 Plotly 테마
fig.update_layout(template='plotly', title='plotly')
fig.show()

# Seaborn 테마
fig.update_layout(template='seaborn', title='seaborn')
fig.show()

# Simple White 테마
fig.update_layout(template='simple_white', title='simple_white')
fig.show()

# presentation 테마
fig.update_layout(template='presentation', title='presentation')
fig.show()

# ggplot2 테마
fig.update_layout(template='ggplot2', title='ggplot2')
fig.show()

# 사용자 정의 테마
fig.update_layout(template=custom_template, title='custom_template')
fig.show()

위 코드에서는 여러 테마를 적용하여 같은 데이터에 대해 시각적으로 다른 느낌을 주는 그래프를 생성합니다.

7. 결론

Plotly에서 테마를 설정하는 방법을 익히면, 시각화를 더욱 일관되게 유지하고, 데이터의 중요한 부분을 강조할 수 있습니다. 기본 제공되는 테마를 활용하거나, 사용자 정의 테마를 만들어 프로젝트나 브랜딩에 맞게 스타일을 조정해보세요. 이러한 설정은 시각화의 품질을 높이고, 데이터의 이해도를 높이는 데 크게 기여할 것입니다.