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

    ....