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

Matplotlib pyplot으로 계단 곡선 아래 영역 채우는 방법

데이터 시각화에서 계단 곡선(step curve)은 값이 연속적으로 변하지 않고 특정 지점에서 계단식으로 변하는 데이터를 표현할 때 유용합니다. Matplotlib의 pyplot을 사용하면 계단 곡선 아래 영역을 손쉽게 색으로 채울 수 있습니다. 이 글에서는 fill_between() 메서드와 step 옵션을 활용하는 방법을 단계별로 살펴보겠습니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
  • NumPy를 사용하여 임의의 데이터 포인트 x, y1, y2를 생성합니다.
  • 곡선 아래 영역을 채우기 위해 fill_between() 메서드에 x, y 값을 전달하고 step="pre" 옵션을 지정합니다.
  • plot() 메서드에 drawstyle="steps" 옵션을 사용하여 (x, y1)과 (x, y2) 선을 그립니다.
  • 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(-10, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.fill_between(x, y1, step="pre", alpha=0.4)
plt.fill_between(x, y2, step="pre", alpha=0.4)

plt.plot(x, y1, drawstyle="steps")
plt.plot(x, y2, drawstyle="steps")

plt.show()

코드 설명

np.linspace(-10, 10, 100)은 -10부터 10까지 균일한 간격의 100개 점을 생성하며, 이를 기반으로 사인(sin)과 코사인(cos) 값을 계산합니다. fill_between()에서 step="pre"를 지정하면 각 구간의 시작점에서 값이 먼저 적용되는 계단 형태로 영역이 채워집니다. 또한 alpha=0.4 옵션으로 채워진 영역을 반투명하게 만들어 두 곡선이 겹치는 부분도 잘 보이도록 했습니다.

실행 결과

위 코드를 실행하면 사인 곡선과 코사인 곡선이 계단 형태로 그려지고, 각 곡선 아래 영역이 반투명한 색상으로 채워진 그림이 출력됩니다.