Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Matplotlib에서 가장 최근에 그려진 선의 색상을 확인하는 방법

Matplotlib으로 그래프를 그릴 때, 가장 최근에 그려진 선(Line2D 객체)의 색상을 확인해야 하는 경우가 있습니다. 예를 들어 색상을 자동으로 지정한 뒤 나중에 그 색상을 재사용하거나 범례에 활용할 때 유용합니다. 이때 get_color() 메서드를 사용하면 간단하게 해결할 수 있습니다.

구현 단계

  • numpy를 사용하여 x축과 y축에 사용할 데이터 포인트를 생성합니다.
  • plt.plot() 함수로 선을 그리며, 이때 색상(red)과 선 두께(linewidth=2)를 지정합니다.
  • plot()이 반환하는 Line2D 객체에서 get_color() 메서드를 호출하여 선의 색상을 가져오고 출력합니다.
  • plt.show() 메서드로 그래프를 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt

# 그림 크기 및 레이아웃 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# x, y 데이터 생성
x = np.linspace(1, 10, 1000)
y = np.linspace(10, 20, 1000)

# 빨간색 선 그리기 (선 두께 2)
line, = plt.plot(x, y, c="red", lw=2)

# 가장 최근에 그려진 선의 색상 출력
print("가장 최근에 그린 선의 색상:", line.get_color())

plt.show()

실행 결과

가장 최근에 그린 선의 색상: red

코드 설명

plt.plot()은 여러 개의 Line2D 객체를 담은 리스트를 반환하기 때문에, 쉼표(line,)를 사용해 언패킹하면 단일 Line2D 객체를 바로 얻을 수 있습니다. 이 객체에는 선의 스타일 정보가 모두 담겨 있으며, get_color() 외에도 get_linewidth(), get_linestyle() 등의 메서드로 다른 속성들도 조회할 수 있습니다.

만약 색상을 RGB 값으로 확인하고 싶다면 line.get_color() 대신 line.get_c() 또는 RGBA 형식이 필요한 경우 line.get_color_rgba() 계열의 속성 접근 방식을 활용할 수도 있습니다. 또한 색상을 명시적으로 지정하지 않고 기본 색상 순환(color cycle)에 맡긴 경우에도 동일한 방법으로 실제 적용된 색상을 확인할 수 있다는 점이 이 방법의 장점입니다.