본문 바로가기

BLOG/데이터분석

[데이터분석] matplotlib : 두 선 그래프 사이에 특정 영역 색칠하기 - fill_between

지난 글에서는 fill_between() 함수를 사용해서 선 그래프의 특정 구간을 색깔로 채우는 방법에 대해서 살펴보았는데요, 이번에는 두 선 그래프가 있을 때 그 사이 특정 영역에 색칠하는 방법에 대해서 살펴보도록 하겠습니다.

 

 

 

- fill_between() : 두 선 그래프 사이에 특정 영역 색칠하기

먼저, matplotlib 라이브러리를 이용하여 두 개의 선 그래프를 그려보도록 하겠습니다.

 

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 8, 27, 64, 125]
y2 = [1, 16, 54, 128, 250]

plt.xticks(np.arange(0,6,1))
plt.plot(x, y1)
plt.plot(x, y2)
plt.show()

 

 

위 그래프에서 만약 x축에서 3과 4 사이의 두 선 그래프 사이의 영역을 색칠하고 싶다면 fill_between() 함수를 사용하면 되는데요, 해당 영역을 채우는 코드를 실행해보겠습니다.

 

plt.fill_between(x[2:4], y1[2:4], y2[2:4], alpha=0.5)

 

위 코드에서 x[2:4], y1[2:4], y2[2:4] 라고 입력한 것은, 점 (x[2], y[2]), (x[2], y[3]), (x[2], y[3]), (x[3], y[3]) 사이의 영역을 채우는 의미가 되고, alpha 는 색칠할 색깔의 투명도를 결정합니다.

 

위 코드를 이제 다시 그래프 그리는 코드와 함께 입력해보겠습니다.

 

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 8, 27, 64, 125]
y2 = [1, 16, 54, 128, 250]

plt.xticks(np.arange(0,6,1))
plt.plot(x, y1)
plt.plot(x, y2)

plt.fill_between(x[2:4], y1[2:4], y2[2:4], alpha=0.5)

plt.show()

 

 

그래프 출력 결과, 원하는 부분의 영역이 잘 색칠되었음을 살펴볼 수 있답니다.