파이썬 Matplotlib에서 곡선 아래 영역을 무지개 색으로 채우려면 다음 단계를 따르면 됩니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
- 무지개 색상 7가지를 리스트로 담고, numpy를 사용해 데이터 포인트 x를 생성하는 사용자 정의 함수 plot_rainbow_under_curve()를 만듭니다.
- 0부터 7까지 반복하면서 곡선을 그리고, 각 색상으로 곡선 사이의 영역을 채웁니다.
- 마지막으로 show() 메서드를 호출하여 그림을 화면에 표시합니다.
예제 코드
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
def plot_rainbow_under_curve():
rainbow_colors = ['violet', 'indigo', 'blue', 'green', 'yellow', 'orange', 'red']
x = np.linspace(-5, 5, 100)
for i in range(0, 7):
plt.plot(x, x ** 2, lw=0)
plt.fill_between(x, x ** 2 + len(rainbow_colors)-i, color=rainbow_colors[i])
plot_rainbow_under_curve()
plt.show()실행 결과
위 코드를 실행하면 곡선 아래 영역이 보라색부터 빨간색까지 무지개 색상으로 순차적으로 채워진 그래프가 출력됩니다.


핵심 포인트
여기서 중요한 역할을 하는 것은 fill_between() 함수입니다. 이 함수는 두 곡선(또는 곡선과 기준선) 사이의 영역을 지정한 색상으로 채워 줍니다. 예제에서는 반복문 안에서 x**2 + len(rainbow_colors) - i 값을 기준선으로 사용함으로써, 각 반복마다 채워지는 높이가 달라지도록 하여 무지개처럼 겹겹이 쌓인 효과를 만들어 냅니다. 또한 lw=0으로 선 두께를 0으로 설정해 곡선 자체는 보이지 않게 하고, 채워진 영역만 나타나도록 처리했습니다.