본문 바로가기
공부 목록/IT & 프로그래밍

python plt.fill_betweenx()과 plt.fill() 함수로 그래프 영역 채우기

by 독학박사 2023. 8. 12.

목차


     지난 글에서 plt.fill_between() 함수를 이용하여 그래프에 영역을 채우는 내용에 대해 다뤘습니다. plt.fill_betweenx()와 plt.fill() 함수를 이번에 따로 다루는 이유는 사용성 때문입니다. 기본적인 사용은 plt.fill_between()을 자주 사용할 것이기 때문입니다. 이번 글에서는 그래도 필요할 때 사용할 수 있도록 fill_betweenx와 fill 함수에 대해서도 정리하려고 합니다.

     

    plt.fill() 함수를 이용한 다각형 그리기
    plt.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값이 여러 개일 경우 잘 사용하진 않습니다.

     

    plt.fill_betweenx() 함수의 예제 결과물
    plt.fill_betweenx() 함수의 예제 결과물

     

    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) 순으로 나타나게 됩니다.

     

    plt.fill() 함수를 이용하여 사다리꼴 그리기
    plt.fill() 함수를 이용하여 사다리꼴 그리기

     

    5. 마치며

     파이썬에서 그래프를 꾸며주기 위하여 plt.fill_betweenx()와 plt.fill() 함수를 사용할 수 있어 그 내용에 대해 정리해 봤습니다. 잘 사용하진 않겠지만 이러한 기능이 있는 줄 알면 필요할 때 잘 꺼내 사용하게 될 겁니다. 아래에는 plt.fill_between() 함수에 대한 글도 있으니 참고하여 익혀두면 좋을 것 같습니다.

     

    함께 공부하면 좋은 글

     

    https://lifelong-education-dr-kim.tistory.com/entry/pltfillbetween-함수를-이용한-파이썬-그래프에-영역-채우는-방법

     

    plt.fill_between() 함수를 이용한 파이썬 그래프에 영역 채우는 방법

    파이썬으로 데이터를 분석하다 보면 특정 조건에서의 상태를 보고 싶을 때가 있습니다. 이럴 경우에는 그래프에 표시를 해야 하는데, 데이터가 많을 경우 특정 조건에 해당하는 구역을 영역으

    lifelong-education-dr-kim.tistory.com

     

     

    https://lifelong-education-dr-kim.tistory.com/entry/pltplot에서-마커와-라인-속성-지정으로-그래프-형태-변경하기

     

    plt.plot()에서 마커와 라인 속성 지정으로 그래프 형태 변경하기

    파이썬에서 데이터를 가시화하기 위해 자주 사용하는 함수로 plt.plot()이 있습니다. 어떠한 옵션도 주지 않으면 단순하게 직선만을 표기해 주는 plt.plot() 함수 내에 데이터를 표시할 수 있는 마커

    lifelong-education-dr-kim.tistory.com