반응형
안녕하세요! 나비입니다 🦋
이번 포스팅에서는 파이썬 matplotlib를 통해 좌표평면 상에 그래프 영역을 색칠하는 방법에 대해 다뤄보려고 합니다.
두 그래프가 주어졌을 때, 수평방향으로 색칠하는 메소드와 수직방향으로 색칠하는 메소드를 각각 소개드리고, 색칠하는 영역의 투명도를 설정하는 파라미터도 설명해 보겠습니다.
plt.fill_between
import matplotlib.pyplot as plt
x = [1,2,3,4]
y = [2,3,4,5]
plt.plot(x, y)
plt.fill_between(x[1:3], y[1:3], alpha=0.5)
plt.show()
Fill_between 함수에 일정 범위로 인덱싱한 x축, y축 배열을 순서대로 입력하고, alpha 파라미터에 0 이상 1 이하 값을 넣어주면 됩니다.
Alpha 파라미터는 1에 가까울수록 색이 진하고, 0에 가까울수록 색이 옅어집니다. 위 코드에서는 alpha 값을 0.5로 설정하였는데, 아래에서 alpha가 1인 경우와 함께 비교해보시면 더 잘 이해될 것입니다.
import matplotlib.pyplot as plt
x = [1,2,3,4]
y = [2,3,4,5]
plt.plot(x,y)
plt.fill_between(x[1:3], y[1:3], alpha=1)
plt.show()
위 코드와 모든 조건이 똑같고, alpha 값만 1로 키워보았더니 색깔이 더 진해진 것을 확인할 수 있었습니다.
plt.fill_betweenx
import matplotlib.pyplot as plt
x = [1,2,3,4]
y = [4,3,2,1]
plt.plot(x,y)
plt.fill_betweenx(x[1:3], y[1:3], alpha = 0.5)
plt.show()
방향을 바꿔서 수직으로 영역을 색칠하고 싶은 경우, fill_betweenx 메소드를 사용하면 됩니다. fill_between 함수와 사용 방법은 동일합니다.
색칠할 영역에 맞게 인덱싱한 배열 2개와 함께 alpha 파라미터를 넣어주면 됩니다.
바로 위 이미지는 alpha를 1로 바꿔준 결과입니다. fill_between과 마찬가지로, 1(100%)로 갈수록 진해지고 0(0%)로 갈수록 옅어집니다.
반응형