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

파이썬 matplotlib.pyplot 모듈로 수직선과 수평선 그리기

by 독학박사 2023. 8. 13.

목차


    파이썬의 matplotlib 라이브러리에서는 그래프의 직선을 나타내는 함수를 제공합니다. 이를 이용해서 수평선과 수직선을 그래프 창에 표시를   있습니다. matplotlib에서 제공하는 함수는 수평선을 위한 함수 2개와 수직선을 그리기 위한 함수 2개가 존재합니다. 이번 글에서는  함수가 구현하는 방식에 대해서 설명을  보려고 합니다. 같은 수평선이나 수직선을 그린다고 하더라도 함수의 사용에 따라  결과가 달라지니 내용을  확인해 보시고 필요에 따라 구분하여 사용하길 바랍니다.

     

    파이썬으로 수평, 수직선 그리기
    파이썬으로 수평, 수직선 그리기

     

     

    1 수평선과 수직선을 그리는 함수들

     그래프의 특정 위치 값이 주어질  수직선과 수평선을 표시하기 위해 matplotlib.pyplot 모듈은  개의 함수를 지원합니다.  개의 함수  (axes) 의미하는 'ax' 붙은 함수는 축을 따라서 직선을 표시한다는 의미입니다. 'ax' 붙지 않을 경우에는 'lines' 같이 'line'뒤에 's' 붙여서 사용합니다.

     

     축을 따라 수직 / 수평선을 표시하는 함수
     - axhilne() : 축을 따라 수평선을 표시
     - axvline() : 축을 따라 수직선을 표시

     지정된 값에 의해 수직 / 수평선을 표시
     - hlines() : 지정된 점 사이의 수평선을 표시
     - vlines() : 지정한 점 사이의 수직선 표시

     

     

    2 axvline, axhline 함수

     'ax' 함수 앞에 붙으면 축을 따라 직선을 그리는 함수라고 했습니다. 'ax' 붙은 axvline axhline 함수의 사용은 다음과 같습니다.

     

    plt.axhline(y=0, xmin=0, xmax=1, **kwargs)
    plt.axvline(x=0, ymin=0, ymax=1, **kwargs)

     

    y, x : 수평선이 그려질 y 또는 x값입니다.
    xmin/ymin (선택적): 선의 시작 x값을 정합니다. 기본값은 0입니다.
    xmax/ymax (선택적): 선의 끝 x값을 정합니다. 기본값은 1입니다.
    **kwargs: 추가적인 키워드 인수들로 선의 스타일, 색상 등을 설정할 수 있습니다.

     

      함수의 사용법이 같기 때문에 axhline 함수 하나에 대해서만 설명하겠습니다. 해당 함수에서는 'y'값은 필수로 들어가야 합니다. 수평선을 그리는 것이기 때문에 수평선의 위치인 'y'값을 넣어야 합니다.

     

     xmin xmax 값은 0에서 1 사이의 값을 넣습니다.  값은 실제의 좌표값이 아닌 여백을 의미합니다. xmin 왼쪽, xmax 오른쪽의 여백의 값을 받습니다. 만일  값을 넣지 않으면 여백 없이 수평선을 그릴 것이고 xmin 0.1 넣으면 왼쪽 부분을 10% 띄운  그리게 됩니다. 아래 예제 코드를 확인해 보시면 금방 이해가  겁니다.

     

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 4, 0.5)
    
    plt.plot(x, x + 1, 'bo')
    plt.plot(x, x**2 -4*x + 4, 'g--')
    plt.plot(x, 2*x - 2, 'r:')
    
    plt.axhline(4.0, 0.1, 0.9, color='b', linestyle='--', linewidth=2)
    plt.axhline(0.0, color='r', linestyle='--', linewidth=2)
    
    plt.show()

     

     첫 번째 수평선(파란 점선)의 min / max 값으로 각각 0.1과 0.9를 넣어줬습니다. 이는 왼쪽으로 10%, 오른쪽으로 10%의 여백을 남기겠다는 뜻입니다. 두 번째 수평선(빨간 점선)은 y값만 사용했는데도 나타납니다. 이는 min / max 값이 자동으로 0과 1이 들어갔음을 의미합니다.

     

    축을 따라 그리는 수평선
    축을 따라 그리는 수평선

     

     

     

    3 vlines, hlines 함수

    'ax' 붙지 않을 때는 'lines' 같이 's' 붙여야 합니다. 축의 의미가 없는   함수는 min / max 값을  넣어야 합니다. axvline 함수는 min / max 값을 넣지 않아도 되는 것과 다르니 주의해야 합니다.

     

    vlines(x, ymin, ymax, colors='k', linestyles='solid', label='', **kwargs)
    hlines(y, xmin, xmax, colors='k', linestyles='solid', label='', **kwargs)

     

    x, y: 수직선이 그려질 x/y 좌표 또는 x/y 좌표들을 담은 리스트나 배열입니다.
    ymin/xmin: 선의 시작 y/x값을 정합니다.
    ymax/ymax: 선의 끝 y/x값을 정합니다.
    colors: 선의 색상을 지정합니다. 기본값은 'k'로 검은색입니다.
    linestyles: 선의 스타일을 지정합니다. 기본값은 'solid'로 실선입니다.
    label: 레이블을 지정하여 범례에 표시될 내용을 설정합니다.
    **kwargs: 추가적인 키워드 인수들로 선의 스타일, 색상 등을 설정할 수 있습니다.

     

     

     hlines 함수는 수평선을 그리는 함수로 x min 값과 max 값을  넣어줘야 합니다. 예제 코드를 통해 값을 넣었을 때의 모습을 확인하시기 바랍니다.

     

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 4, 0.5)
    
    plt.plot(x, x + 1, 'bo')
    plt.plot(x, x**2 -4*x + 4, 'g--')
    plt.plot(x, 2*x - 2, 'r:')
    
    plt.hlines(4.0, 0.1, 0.9, color='b', linestyle='--', linewidth=2)
    plt.hlines(0.0, 0.5, 3.5, color='r', linestyle='--', linewidth=2)
    
    plt.show()

     

    hlines은 무조건 min / max 값을 넣어야 합니다. axhline과는 달리 min / max 값은 수평선이 그려질 처음 위치와 끝 위치를 의미합니다. 첫 번째 수평선은 0.1~0.9의 길이를 갖고, 두 번째 수평선은 0.5~3.5의 길이를 갖게 됩니다.

     

    좌표값을 이용해 그린 수평선
    좌표값을 이용해 그린 수평선

     

     

     

    4 마치며

     파이썬의 matplotlib.pyplot 모듈의 함수 중에 수평선과 수직선을 그리는 함수들에 대해서 정리해 봤습니다.  함수의 사용방법이 비슷해 보이긴 하지만  내용에 차이가 있으니 이번 글의 내용을 숙지하셔서  활용할  있었으면 합니다.