데이터 시각화에서 하나의 그래프에 여러 색상의 선을 표현하면 정보를 더욱 직관적으로 전달할 수 있습니다. 이번 글에서는 Python의 대표적인 시각화 라이브러리인 Matplotlib를 활용해 무지개처럼 일곱 가지 색상(VIBGYOR)의 선을 그리는 방법을 단계별로 알아보겠습니다.
핵심 개념: VIBGYOR란?
VIBGYOR는 무지개의 일곱 가지 색을 순서대로 나타낸 약어로, 보라(Violet), 남색(Indigo), 파랑(Blue), 초록(Green), 노랑(Yellow), 주황(Orange), 빨강(Red)을 의미합니다. 이 색상 목록을 활용하면 자연스러운 무지개 그라데이션 효과를 만들 수 있습니다.
구현 단계
numpy를 사용하여 x축 데이터 포인트를 생성합니다.
무지개 색상(VIBGYOR)으로 구성된 색상 리스트를 만듭니다.
색상 리스트의 길이만큼 반복문을 실행합니다.
plot()메서드를 사용하여 x와 y(x+i/20) 값을 기준으로 선을 그립니다. 이때 마커는marker='o', 선 두께는linewidth=7로 지정하고, 각 반복마다colors[i]색상을 적용합니다.show()메서드를 호출하여 최종 그래프를 화면에 출력합니다.
전체 예제 코드
import numpy as np
from matplotlib import pyplot as plt
# 그림 크기 및 레이아웃 설정
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
# x 데이터 포인트 생성
x = np.linspace(-1, 1, 10)
# 무지개 색상 리스트 (VIBGYOR)
colors = ["red", "orange", "yellow", "green", "blue", "indigo", "violet"]
# 색상별로 선 그리기
for i in range(len(colors)):
plt.plot(x, x + i/20, c=colors[i], lw=7, marker='o')
plt.show()코드 상세 설명
1. 데이터 포인트 생성
np.linspace(-1, 1, 10)은 -1부터 1 사이를 균등하게 나눈 10개의 데이터 포인트를 생성합니다. 이 값들이 각 선의 x좌표가 됩니다.
2. y값 계산 방식
x + i/20 표현식은 반복 인덱스 i에 따라 각 선을 조금씩 위로 이동시킵니다. 덕분에 일곱 개의 선이 서로 겹치지 않고 계단식으로 배치되어 무지개 형태를 띠게 됩니다.
3. 스타일 옵션
c=colors[i]로 각 선의 색상을 지정하고, lw=7(선 두께)과 marker='o'(원형 마커)를 적용하여 시각적으로 뚜렷한 결과물을 얻습니다.
실행 결과

위 코드를 실행하면 빨강부터 보라까지 일곱 가지 색상의 선이 아름답게 배열된 그래프를 확인할 수 있습니다.
응용 팁
더 부드러운 그라데이션: 데이터 포인트 수를 늘리고(예:
np.linspace(-1, 1, 100)) 색상을 컬러맵(plt.cm.rainbow)에서 가져오면 연속적인 무지개 곡선을 만들 수 있습니다.범례 추가:
label매개변수와plt.legend()를 사용하면 각 선이 어떤 데이터를 의미하는지 명확히 표시할 수 있습니다.그림자 효과: 같은 선을 어두운 색으로 먼저 그린 뒤 밝은 색을 살짝 위에 겹치면 입체적인 느낌을 줄 수 있습니다.
마무리
이처럼 Matplotlib의 plot() 메서드와 간단한 반복문만으로도 다중 색상 선 그래프를 손쉽게 구현할 수 있습니다. 이 기법은 시계열 데이터 비교, 카테고리별 추세 시각화 등 다양한 상황에서 유용하게 활용될 수 있으니 실제 프로젝트에 응용해 보시기 바랍니다.