Plotly Chart 다양한 스타일 적용하기

Author

Gabriel Yang

Plotly에서 Marker, Line 등 다양한 스타일 혼합 사용의 장점과 예시

Plotly는 다양한 데이터 시각화 도구를 제공하며, 마커(marker), 라인(line) 등의 시각적 요소를 혼합하여 데이터를 더 풍부하게 표현할 수 있습니다. 이 글에서는 다양한 스타일을 혼합하여 사용하는 장점과 함께, 이를 활용한 예시 코드를 소개하겠습니다.

1. 다양한 스타일 혼합 사용의 장점

  1. 데이터의 다양한 측면 강조:
    • 마커와 라인을 동시에 사용하면, 데이터의 각 점을 강조하면서도 그 점들 사이의 관계를 명확히 표현할 수 있습니다.
  2. 명확한 비교 제공:
    • 복수의 데이터 시리즈를 동일한 그래프에서 비교할 때, 각 시리즈의 시각적 속성을 다르게 설정하여 명확한 비교를 제공합니다.
  3. 상황에 따른 가독성 향상:
    • 데이터가 밀집된 구간에서는 마커를 사용해 개별 점을 강조하고, 데이터가 드문드문 있는 구간에서는 라인을 사용해 전체적인 경향을 파악할 수 있습니다.
  4. 맞춤형 시각화:
    • 다양한 스타일을 조합함으로써 사용자가 필요로 하는 맞춤형 시각화를 구현할 수 있습니다. 예를 들어, 특정 데이터를 강조하거나 특정 시점에서의 변화를 시각적으로 돋보이게 할 수 있습니다.

2. 예시 코드: 다양한 스타일 혼합 사용

다음 예제에서는 마커, 라인, 그리고 마커의 테두리(Line)를 혼합하여 데이터 시각화를 수행합니다.

2.1 데이터 준비

먼저, 샘플 데이터를 생성합니다.

import plotly.graph_objects as go

# 예제 데이터 생성
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [2, 3, 5, 8, 12, 18, 25, 35, 48, 65]
y2 = [1, 4, 6, 10, 15, 22, 32, 45, 60, 80]

2.2. lines+text

데이터를 선으로 연결하면서, 각 포인트에 텍스트 레이블을 표시합니다.

fig = go.Figure()

# 첫 번째 데이터 시리즈 (마커와 라인 혼합, 큰 마커, 테두리 있음)
fig.add_trace(go.Scatter(
                x=[1, 2, 3, 4, 5],
                y=[10, 15, 13, 17, 16],
                mode='lines+text',
                text=["A", "B", "C", "D", "E"]
              )
)

2.3. markers+text

데이터를 마커로 표시하면서, 각 포인트에 텍스트 레이블을 표시합니다. 선은 연결되지 않습니다.

fig = go.Figure()

# 첫 번째 데이터 시리즈 (마커와 라인 혼합, 큰 마커, 테두리 있음)
fig.add_trace(go.Scatter(
                x=[1, 2, 3, 4, 5],
                y=[10, 15, 13, 17, 16],
                mode='markers+text',
                text=["A", "B", "C", "D", "E"]
              )
)

2.3 lines+markers+text

데이터를 선과 마커로 동시에 표시하며, 각 포인트에 텍스트 레이블도 함께 표시합니다.

이제, 마커, 라인, 그리고 마커의 테두리 스타일을 조합하여 그래프를 생성합니다.

# 그래프 생성
fig = go.Figure()

# 첫 번째 데이터 시리즈 (마커와 라인 혼합, 큰 마커, 테두리 있음)
fig.add_trace(go.Scatter(
    x=x, y=y1,
    mode='lines+markers',
    name='Series 1',
    marker=dict(color='blue', size=12, line=dict(color='black', width=2)),
    line=dict(color='blue', width=2)
))

# 두 번째 데이터 시리즈 (작은 마커와 점선 라인, 테두리 없음)
fig.add_trace(go.Scatter(
    x=x, y=y2,
    mode='lines+markers',
    name='Series 2',
    marker=dict(color='red', size=8),
    line=dict(color='red', width=2, dash='dash')
))

# 그래프 출력
fig.update_layout(
    title='Mixed Marker and Line Styles',
    xaxis_title='X Axis',
    yaxis_title='Y Axis'
)
fig.show()
  • mode='lines+markers': 마커와 라인을 동시에 표시하여 데이터의 개별 점과 점들 사이의 관계를 동시에 시각화합니다.

  • 마커 스타일:

    • marker=dict(color='blue', size=12, line=dict(color='black', width=2)): 첫 번째 데이터 시리즈의 마커를 파란색으로 설정하고, 크기는 12, 테두리는 검은색으로 설정합니다.
    • marker=dict(color='red', size=8): 두 번째 데이터 시리즈의 마커는 빨간색, 크기 8로 설정하되 테두리는 생략합니다.
  • 라인 스타일:

    • line=dict(color='blue', width=2): 첫 번째 데이터 시리즈의 라인을 파란색, 두께 2로 설정합니다.
    • line=dict(color='red', width=2, dash='dash'): 두 번째 데이터 시리즈의 라인을 빨간색, 두께 2로 설정하고, 점선(dash) 스타일을 적용합니다.

4. 다양한 스타일 혼합 사용의 실전 사례

  1. 다중 시리즈 비교:
    • 위의 예시에서 두 데이터 시리즈의 마커 크기와 라인 스타일을 다르게 설정하여 시각적으로 구분하고 비교할 수 있습니다.
  2. 변화의 강조:
    • 특정 구간에서의 급격한 변화를 강조하고 싶다면, 해당 구간의 라인 스타일을 점선에서 실선으로 바꾸거나, 마커 크기를 키우는 등의 방법을 사용할 수 있습니다.
  3. 상황에 맞춘 시각화:
    • 데이터가 밀집된 구간에서는 마커를 크게 하여 강조하고, 데이터가 드문 구간에서는 라인을 굵게 하여 전체적인 흐름을 강조할 수 있습니다.

5. 결론

Plotly에서 마커, 라인 등의 다양한 스타일을 혼합하여 사용하는 것은 데이터를 보다 풍부하고 직관적으로 시각화하는 데 매우 유용합니다.