Matplotlib에서 그린 두 곡선 사이의 영역(면적)을 시각화하고 구하려면 fill_between() 메서드를 활용하는 것이 가장 간단합니다. 아래 단계를 따라 차례대로 진행해 보세요.
구현 단계
- 그림 크기(figure size)를 설정하고, 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
- NumPy를 사용하여 x, c1, c2 데이터 포인트를 생성합니다.
- plot() 메서드를 이용해 (x, c1)과 (x, c2) 두 곡선을 그립니다.
- fill_between() 메서드로 두 곡선 c1과 c2 사이의 영역을 회색으로 채우고, hatch 옵션에 "|" 패턴을 지정하여 영역을 강조합니다.
- show() 메서드를 호출하여 최종 그림을 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(0, 1, 100) c1 = x ** 2 c2 = x plt.plot(x, c1) plt.plot(x, c2) plt.fill_between(x, c1, c2, color="grey", alpha=0.3, hatch='|') plt.show()
코드 설명
위 예제에서는 0부터 1까지 100개의 균등한 간격으로 x 값을 생성한 뒤, 첫 번째 곡선 c1은 y = x², 두 번째 곡선 c2는 y = x로 정의합니다. 두 곡선을 plot()으로 그린 후, fill_between(x, c1, c2)를 호출하면 두 곡선이 만나는 구간 사이가 자동으로 채워집니다.
여기서 alpha=0.3 옵션은 채워진 영역을 반투명하게 만들어 곡선이 잘 보이도록 하고, hatch='|' 옵션은 세로줄 무늬 패턴을 추가하여 영역을 더욱 뚜렷하게 구분해 줍니다.
실행 결과

실행하면 y = x² 곡선과 y = x 직선 사이의 영역이 회색 빗금 패턴으로 채워진 그래프를 확인할 수 있습니다. 이 방법은 두 데이터 시리즈 간의 차이를 시각적으로 비교할 때 매우 유용하게 활용됩니다.