matplotlib 그래프 영역 채우기

반응형
반응형

그래프 영역을 채우는 방법을 소개합니다.

  • fill_between()
  • fill_betweenx()
  • fill

세가지 함수로 실행할 수 있는데요.

범위를 정해주면 그 범위에 맞게 그려주게 됩니다. 

x축을 기준으로 한다면 fill_between()을 y축을 기준으로 한다면 fill_betweenx()을 하고

fill은 임의의 영역을 채울 때 사용합니다.

사용예제를 보겠습니다.

 

fill_between()

fill_between()은 x축에서 제가 정한 범위까지 영역이 채워집니다.

리스트로 x,y가 이루어져 있으므로 인덱싱으로 범위를 표시하면 됩니다.

import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [2,4,6,8,10]

plt.plot(x,y)
plt.fill_between(x[1:3],y[1:3],alpha=0.5) # alpha : 투명도 
plt.show()

 

fill_betweenx()

fill_betweenx()을 사용하면 y축을 기준으로 영역이 채워집니다.

fill_between의 축이 바뀐다 생각하면 됩니다.

그러니 파라미터 순서도 다르게 해야합니다.

y값을 먼저 넣고 x값을 나중에 넣습니다.

plt.plot(x,y)
plt.fill_betweenx(y[1:3],x[1:3],alpha=0.5)
plt.show()

 

fill

fill()을 사용하면 임의의 영역을 채울 수 있습니다.

x = [1,2,3,4,5]
z = [3,6,9,12,15]
plt.plot(x,z)
plt.fill([1,1,3,3],[2.5,4,10,7],color = 'blue',alpha=0.5)
plt.show()

plt.fill의 파라미터에서 먼저 x값 리스트를 다음은 y값 리스트입니다.

좌표로 보면 (1,2.5) ,(1,4), (3,10),(3,7)을 꼭지점으로 한 영역을 채우게 됩니다.

 

 

두 그래프 사이 영역

번외로 두 그래프 사이의 영역을 채워보겠습니다.

fill_between을 사용하면 되고 변수가 하나 더 추가됩니다.

x = [1,2,3,4,5]
y = [2,4,6,8,10]
z = [3,6,9,12,15]
plt.plot(x,y)
plt.plot(x,z)
plt.fill_between(x[1:3],y[1:3],z[1:3],color = 'blue')
plt.show()

범위를 하나씩 나열하는 방식으로 접근하시면 편하게 하실 수 있을겁니다.

 

관련 포스팅

ndarray 데이터로 그래프 그리기(matplotlib)

데이터목장님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY