본문 바로가기

BLOG/데이터분석

[데이터분석] matplotlib : 그래프 특정 구간 색칠하기 - fill_between()

 

matplotlib 라이브러리를 이용하여 그래프를 쉽고 간단하게 그릴 수 있는데요, matplotlib 라이브러리에서는 선그래프에서 특정 구간을 색칠해서 나타내는 함수 fill_between()을 제공합니다.

한 번 코드를 보면서 살펴보도록 하겠습니다.

 

 

- fill_between() : 그래프 특정 구간 채우기

먼저, 그래프를 하나 만들어 보도록 하겠습니다.

 

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 8, 27, 64, 125]

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

 

만약 이 그래프에서 x축의 2와 3 사이의 영역을 색칠하고 싶다면 fill_between() 함수를 사용하면 되는데요,

먼저 아래 코드를 보겠습니다.

 

plt.fill_between(x[1:3], y[1:3], alpha=0.5)

 

이 코드는 2와 3사이의 영역을 색칠하는 코드로, fill_between() 함수 안에  x[1:3], y [1:3]를 입력하면, 이는 네 점 (x[1], y[1]), (x[2], y[2]), (x[1], 0), (x[2], 0)을 잇는 영역을 의미합니다. 마지막에 alpha 값은 색칠할 때 투명도 값으로 0~1 사이의 값을 지정할 수 있습니다.

 

한편, 위 코드를 사용하여 다시 그래프를 출력해보겠습니다.

 

plt.plot(x,y)
plt.xticks(np.arange(0,6,1))
plt.fill_between(x[1:3], y[1:3], alpha=0.5) #fill_between() 사용
plt.show()

 

 

출력된 그래프를 보면 원하는 영역이 잘 색칠되었음을 확인할 수 있습니다.

 

한편, fill_between()을 이용하여 두 선그래프 사이의 영역도 채울 수 있는데요, 이에 대해선 다음 글에서 살펴보도록 하겠습니다.