개요
Python의 시각화 라이브러리인 Matplotlib를 사용하면 무지개의 일곱 가지 색상으로 이루어진 동심원을 간단하게 그릴 수 있습니다. 핵심 아이디어는 큰 원부터 작은 원 순서로 겹쳐 그려서, 마치 무지개처럼 보이도록 만드는 것입니다.
무지개 원을 그리려면 아래 단계를 따르면 됩니다.
- 그림(Figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백을 조정합니다.
- Figure와 서브플롯(Axes) 객체를 생성합니다.
- X축과 Y축의 좌표 범위를 설정하고 축 비율을 동일하게 맞춥니다.
- 무지개 색상 목록(보라, 남색, 파랑, 초록, 노랑, 주황, 빨강)을 만듭니다.
- (0, 0) 위치에 중심을 둔 원(
plt.Circle)을 생성합니다. - 생성한 원 인스턴스를 Axes에 추가합니다.
show()메서드를 호출하여 그림을 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 5.50]
plt.rcParams["figure.autolayout"] = True
fig, ax = plt.subplots()
plt.axis("equal")
ax.set(xlim=(-10, 10), ylim=(-10, 10))
for i in range(0, 7):
rainbow = ['violet', 'indigo', 'blue', 'green', 'yellow', 'orange', 'red']
c = plt.Circle((0, 0), 7-i, fill=True, color=rainbow[i])
ax.add_artist(c)
plt.show()코드 설명
plt.rcParams["figure.figsize"]: 그림의 가로·세로 크기를 인치 단위로 지정합니다.plt.axis("equal"): X축과 Y축의 눈금 간격을 동일하게 맞춰 원이 찌그러지지 않고 정원 형태로 표시됩니다.ax.set(xlim=(-10, 10), ylim=(-10, 10)): 좌표 평면의 표시 범위를 설정합니다.for반복문: 인덱스i가 0부터 6까지 증가할 때마다 반지름이7-i로 점점 작아지는 원을 그립니다. 즉, 반지름 7의 보라색 원부터 반지름 1의 빨간색 원까지 차례대로 겹쳐 그려집니다.ax.add_artist(c): 생성한 Circle 패치를 Axes에 추가하여 화면에 나타나도록 합니다.
실행 결과
위 코드를 실행하면 중심이 같은 일곱 개의 원이 바깥쪽부터 안쪽으로 보라 → 남색 → 파랑 → 초록 → 노랑 → 주황 → 빨강 순서로 채워져, 마치 무지개처럼 보이는 동심원 그림이 출력됩니다.

