목차
지난 글에서 plt.fill_between() 함수를 이용하여 그래프에 영역을 채우는 내용에 대해 다뤘습니다. plt.fill_betweenx()와 plt.fill() 함수를 이번에 따로 다루는 이유는 사용성 때문입니다. 기본적인 사용은 plt.fill_between()을 자주 사용할 것이기 때문입니다. 이번 글에서는 그래도 필요할 때 사용할 수 있도록 fill_betweenx와 fill 함수에 대해서도 정리하려고 합니다.
1. plt.fill_betweenx() 함수
plt.fill_betweenx() 함수는 Matplotlib 라이브러리에서 제공하는 함수 중 하나로, 주로 세로 방향으로 채워진 영역을 시각화할 때 사용됩니다. 이 함수를 사용하면 주어진 y 값 범위 내에서 x 값에 해당하는 영역을 특정 색상으로 채울 수 있습니다. 함수의 기본 사용법은 다음과 같습니다.
fill_betweenx(y, x1, x2, where=None, step=None, interpolate=False, **kwargs)
각 인자에 대한 내용은 아래와 같이 정리하였습니다.
y: y 값 배열로, 영역을 채울 세로 방향의 범위를 지정합니다.
x1, x2: x 값 범위로, 영역을 채우기 시작할 x 값과 끝나는 x 값입니다.
where (선택적): 조건을 나타내는 불리언 배열 또는 마스크입니다. 이 조건을 만족하는 부분에만 영역이 채워집니다.
step (선택적): 부분 영역 간의 간격을 나타내는 스칼라 또는 'pre' 또는 'post' 문자열입니다.
interpolate (선택적): True로 설정하면 부분 영역 간의 값을 보간합니다.
**kwargs: 추가적인 키워드 인자를 받는 매개변수로, 채우는 영역의 색상, 투명도 등을 설정할 수 있습니다.
2. plt.fill_betweenx() 함수의 예제 코드
데이터 특성상 feature(y값)가 여러 개일 경우는 있지만 x축의 값은 하나만 있기 때문에 fill_between() 함수와 같이 where의 조건을 만드는 경우는 잘 없을 겁니다. fill_betweenx() 함수는 그래프의 특성을 확인하기보다는 그래프에서 중요하게 생각하는 부분을 두드러지게 할 때 사용하게 됩니다.
import matplotlib.pyplot as plt
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 특정 y 범위 내의 영역 채우기
plt.fill_betweenx(y[1:4], x[1:4], color='gray', alpha=0.5)
# 그래프 플로팅
plt.plot(x, y, marker='o')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('fill_betweenx() Example')
plt.show()
plt.show()
이번 예제 코드는 y의 [1] 번째 값부터 [3] 번째 값까지에 대해 영역을 채우기 위함입니다. y값이 여러 개일 경우 잘 사용하진 않습니다.
3. plt.fill() 함수
plt.fill() 함수는 Matplotlib 라이브러리에서 제공하는 함수 중 하나로, 주로 다각형의 내부를 색상으로 채우는 데 사용됩니다. 이 함수를 사용하면 주어진 점의 좌표로 다각형을 그리고 내부를 특정 색상으로 채울 수 있습니다. fill() 함수의 시그니처는 아래와 같이 사용합니다.
fill(x, y, color=None, edgecolor=None, linewidth=None, label=None, **kwargs)
각 인자에 대한 설명은 아래를 참고하세요
x: 다각형의 꼭짓점 x 좌표를 포함하는 배열 또는 리스트.
y: 다각형의 꼭짓점 y 좌표를 포함하는 배열 또는 리스트.
color (선택적): 다각형 내부를 채울 색상을 지정합니다.
alpha : 채우는 영역의 투명도를 조절합니다.
4. plt.fill() 함수의 예제 코드
plt.fill() 함수는 그래프 내에 특정한 다각형을 표기할 때 사용됩니다. 아래 예제 코드를 통해 그 사용법을 숙지하면 사용 시 큰 어려움을 없을 겁니다. 사각형을 그래프 내에 그리고 싶다면 x 값 4개와 y 값 4개를 입력하면 되는데 그 순서가 어떻게 반영되는지 확인해야 합니다. 첫 번째 값을 기준으로 시계방향으로 돌면서 데이터가 반영됩니다.
import matplotlib.pyplot as plt
# 다각형의 꼭지점 좌표
x = [1, 1.5, 3, 3.5]
y = [2, 4, 4, 2]
# 다각형 내부 채우기
plt.fill(x, y, color='gray', alpha=0.5)
# 주어진 좌표로 다각형을 그리고 gray 색상으로 채움
# 그래프 플로팅
plt.plot(x, y, marker='o')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('fill() Example')
plt.show()
사다리꼴을 그리기 위해 x = [1, 1.5, 3, 3.5]와 y = [2, 4, 4, 2]의 값을 사용했습니다. 데이터는 (1, 2), (1.5, 4), (3, 4), (3.5, 2) 순으로 나타나게 됩니다.
5. 마치며
파이썬에서 그래프를 꾸며주기 위하여 plt.fill_betweenx()와 plt.fill() 함수를 사용할 수 있어 그 내용에 대해 정리해 봤습니다. 잘 사용하진 않겠지만 이러한 기능이 있는 줄 알면 필요할 때 잘 꺼내 사용하게 될 겁니다. 아래에는 plt.fill_between() 함수에 대한 글도 있으니 참고하여 익혀두면 좋을 것 같습니다.
함께 공부하면 좋은 글
https://lifelong-education-dr-kim.tistory.com/entry/pltfillbetween-함수를-이용한-파이썬-그래프에-영역-채우는-방법
https://lifelong-education-dr-kim.tistory.com/entry/pltplot에서-마커와-라인-속성-지정으로-그래프-형태-변경하기