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

파이썬 그래프 라이브러리 matplotlib의 plot 함수 인자 설명

by 독학박사 2023. 5. 6.

목차


     데이터 분석을 할 때 가장 많이 사용되는 것이 그래프를 확인하는 방법일 겁니다. 이것을 데이터의 가시화라고 하는데, 파이썬에서 사용되는 그래프 라이브러리인 matplotlib의 pyplot 중 plot 메서드 사용방법에 대해 알아보겠습니다. plot 메서드는 기본적으로 그래프를 그리는 것으로 그래프 창의 포맷을 변경하는 메서드는 별도로 존재합니다.

     

     

    파이썬 matplotlib pyplot의 plot() 함수 사용법
    파이썬 matplotlib pyplot의 plot() 함수 사용법

     

     

     1.  plt plot?

    plt와 plot은 모두 Matplotlib 라이브러리의 기능을 사용하기 위해 제공되는 함수입니다.

     

    plt는 일반적으로 matplotlib.pyplot 모듈의 별칭(alias)으로 사용되며, pyplot은 Matplotlib에서 그래프를 그리고 조작하는 데 사용되는 다양한 함수와 도구를 제공합니다. plt를 사용하여 그래프를 생성하고 축의 레이블, 범례, 타이틀 등을 설정하며, 그래프를 화면에 표시하는 등의 작업을 수행할 수 있습니다.

     

    # 라이브러리 내 모듈을 별칭으로 호출
    import matplotlib.pyplot as plt

     

    plot은 pyplot 모듈에서 제공되는 그래프를 그리는 함수입니다. plot 함수는 데이터를 시각화하기 위해 사용되며, 선 그래프, 산점도, 막대그래프 등 다양한 형태의 그래프를 생성할 수 있습니다. plot 함수는 plt.plot() 형식으로 사용되며, 데이터와 함께 그래프의 스타일, 색상, 레이블 등을 지정할 수 있습니다.

     

    따라서, plt는 pyplot 모듈을 사용하기 위한 별칭이고, plot은 pyplot 모듈에서 제공되는 그래프를 그리는 함수입니다.

     

     

     2. plot 함수 설명

     'plot' 함수의 전체 시그니처는 다음과 같습니다.

     

    plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

     

     1) [x], y, [fmt]

    이 부분은 데이터를 그래프로 표시하는 데 사용됩니다. [x]는 선택적으로 사용할 수 있는 X 축 데이터입니다. 만약 생략된다면, y 값의 인덱스가 X 축 값으로 사용됩니다. y는 Y 축 데이터입니다. [fmt]는 선택적으로 사용할 수 있는 서식 문자열입니다. 이를 통해 그래프의 스타일을 지정할 수 있습니다.

     

     2) [x2], y2, [fmt2], ...

     이 부분은 추가적인 데이터와 그래프 스타일을 지정할 때 사용됩니다. 일반적으로 이렇게 사용하는 경우는 드물고 하나의 그래프를 추가하기 위해서는 plot 함수를 추가해서 사용하는 것이 관리하기가  편리합니다. 기본사용법에 이런 것도 있구나 하고 넘어가도 됩니다.

     

    [x2]는 선택적으로 사용할 수 있는 X 축 데이터입니다. y2는 Y 축 데이터입니다. [fmt2]는 선택적으로 사용할 수 있는 서식 문자열로, 그래프의 스타일을 지정합니다. 이후에 필요한 만큼 데이터와 서식 문자열을 추가할 수 있습니다.

     

     3) **kwargs

    키워드 인수를 통해 그래프의 세부적인 속성을 지정할 수 있습니다.

     

    color 또는 c: 그래프의 선 색상을 지정합니다.
    linestyle 또는 ls: 그래프의 선 스타일을 지정합니다.
    marker: 그래프의 마커 모양을 지정합니다.
    label: 그래프의 레이블을 지정합니다.
    linewidth 또는 lw: 그래프의 선 두께를 지정합니다.
    markersize 또는 ms: 그래프의 마커 크기를 지정합니다.

     

     

     3. plot 그래프의 포맷 인자들 : [fmt] 설명

    1) linestyle

    파이썬에서 plot 데이터    점을 표기하게 되는데,  점들을 잇는 선의 형태를 지정하는 것이  스타일입니다.

    '-' (solid line): 실선
    '--' (dashed line): 파선
    '-.' (dash-dot line): 대시 점선
    ':' (dotted line): 점선
    'None' 또는 '' (no line): 선 없음

     

    2) marker

    마커는 데이터들의  점들을 어떠한 모양으로 표기할 것인지 지정하는 인자입니다.

    '.' (point): 점
    ',' (pixel): 픽셀
    'o' (circle): 원
    'v' (triangle_down): 아래쪽 삼각형
    '^' (triangle_up): 위쪽 삼각형
    '<' (triangle_left): 왼쪽 삼각형
    '>' (triangle_right): 오른쪽 삼각형
    '1' (tri_down): 아래쪽 삼각형 (더 날카로운)
    '2' (tri_up): 위쪽 삼각형 (더 날카로운)
    '3' (tri_left): 왼쪽 삼각형 (더 날카로운)
    '4' (tri_right): 오른쪽 삼각형 (더 날카로운)
    's' (square): 사각형
    'p' (pentagon): 오각형
    '*' (star): 별표
    'h' (hexagon1): 육각형 1
    'H' (hexagon2): 육각형 2
    '+' (plus): 플러스
    'x' (x): 엑스
    'D' (diamond): 다이아몬드
    'd' (thin_diamond): 얇은 다이아몬드
    '|' (vline): 수직선
    '_' (hline): 수평선

     

     

    3) color

    색상은 선의 색을 지정해 주는 것으로 색상코드를 입력해도 됩니다. 파이썬 데이터 분석에서는 그리 많은 색상을 사용하지 않으니 아래의 색상 정도만 알고 있어도 여러 색상을 표현하는데 무리가 없을 겁니다.

     

    'b' : 파란색 (blue)
    'g' : 초록색 (green)
    'r' : 빨간색 (red)
    'c' : 청록색 (cyan)
    'm' : 자홍색 (magenta)
    'y' : 노란색 (yellow)
    'k' : 검은색 (black)
    'w' : 흰색 (white)

     

    4) 포맷 조합

    인자들의 경우 각각의 변수에  값을 넣어서 반영해야 합니다. 예를 들어 color = 'c', marker = 'o', linestyle = '--' 과같이 사용합니다. 하지만, plot 시그니처에 내용을 보면 [fmt]라고 하나로 묶여서 표현된 듯이 보였습니다. 포맷들을 묶어서 하나로 표현할  있다는 뜻입니다.

     

    'ro-' : 빨간색, 동그라미 마커, 실선
    'b--' : 파란색, 마커 없음, 점선

     

     

    4. plot 함수의 설명을 돕는 예제 코드 및 결과물

     지금까지 설명드린 내용에 도움을 드리기 위해 예제 코드를 아래와 같이 작성하였습니다.

     

    plot 함수 한 개에서 두 개의 그래프를 나타내는 코드입니다.

    import matplotlib.pyplot as plt
    
    # case 1
    # 단일 데이터 배열로 그래프 그리기
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    plt.plot(x, y)
    
    # case 2
    # 여러 개의 y 데이터 배열로 그래프 그리기
    x = [1, 2, 3, 4, 5]
    y1 = [2, 4, 6, 8, 10]
    y2 = [1, 3, 5, 7, 9]
    plt.plot(x, y1, x, y2)

     

    case1과 case2의 그래프
    case1과 case2의 그래프

     

    포맷을 설정한 형태의 그래프를 그려보겠습니다. 포맷으로는 선스타일을 점선으로, 마커는 다이아몬드로, 색상을 녹색, 라벨은 'line'으로 설정하였고 선 두께와 마커 사이즈는 각각 2와 8로 지정하였습니다.

     

    plt.plot(x, y, ls=':', marker='D', c='g', label='line', linewidth=2, markersize=8)
    plt.legend()

     

    포맷을 설정한 형태의 그래프
    포맷을 설정한 형태의 그래프

     

    그래프를 두 개 그리는 일반적인 방법으로는 plot함수를 두 개 사용한다고 했습니다. 이는 향후에 for문을 이용할 때 도움이 됩니다. 아래 코드는 두 개의 그래프를 그리는 예제 코드입니다. 그래프의 포맷은 포맷 조합 방식으로 설정하였습니다. label의 값을 별도로 입력해 주었는데, plt.legend()를 작성하지 않으면 그래프에 표기가 되지 않으니 유의해서 사용하셔야 합니다.

     

    import matplotlib.pyplot as plt
    
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    x2 = [1, 2, 3, 4, 5]
    y2 = [1, 3, 5, 7, 9]
    
    # 단일 데이터와 추가 데이터로 그래프 그리기
    plt.plot(x, y, 'ro-', linewidth=2, markersize=8, label='data')
    plt.plot(x2, y2, 'b--', linewidth=1, markersize=6, label='additional data')
    
    # label의 값을 나타내기 위해 작성해야 함
    plt.legend()

     

    포맷 조합을 이용한 그래프 두 개 그린 결과
    포맷 조합을 이용한 그래프 두 개 그린 결과

     

     

    5. 마치며

     파이썬에서 그래프 가시화를 위해 가장 기본적으로 사용하고 있는 matplotlib 라이브러리에서 pyplot 모듈의 plot 함수 사용법에 대해 알아보았습니다. 위에서 사용한 방식은 직접적인 함수 사용방식으로 가장 일반적이 표현입니다. x값의 경우 별도로 지정해 주지 않으면 프로그램에서 알아서 '0'부터의 값을 넣어줍니다. matplotlib은 가시화 라이브러리 중 하나로 다른 가시화 라이브러리들도 존재합니다.

    댓글