ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Matplotlib] Matplotlib을 이용해서 파이썬으로 그래프 그려보기
    Python/시각화 2023. 4. 27. 15:00
    반응형

    Matplotlib을 이용해서 파이썬으로 그래프 그려보기


    Matplotlib이란


    파이썬(Python)을 통해서 그래프를 그리기 위해서는 별도의 패키지를 불러와야 합니다. 다양한 패키지가 있지만, 대부분의 파이썬 시각화 프로세스는 맷플롯립(Matplotlib) 이라는 패키지를 사용하거나, 이 패키지를 기반으로 설계된 패키지를 이용합니다.

     

     

    Matplotib은 일부 파이썬 배포판에서는 기본적으로 설치되어 있지만, 만약 설치되어 있지 않다면 쉘 스크립트로 $ pip install matplotlib 명령어를 입력해서 설치해 주시면 됩니다.

     

     

    파이썬에서 Matplotlib을 사용할 때는 패키지 자체 또는 파이플롯(PyPlot)이라는 모듈을 이용하며, Matplotlib은 주로 mpl, Pyplot은 주로 plt 이라는 줄임말로 사용하곤 합니다.

     

     

    기본적인 그래프를 그릴 수 있는 Pyplot 사용해보기


    우선은, 파이플롯을 사용해서 그래프를 그릴 수 있도록 해 봅시다. 파이플롯의 사용법은 간단한데요, 파이플롯에서 제공하는 메소드 중 도표 이름만 잘 골라서 사용하면 파이썬으로 그릴 수 있는 거의 모든 도표를 손쉽게 이용할 수 있답니다. 예를 들어,

     

    • 선 그래프(Line plot) 그리기: plt.plot(x, y)
    • 산점도(Scatterplot) 그리기: plt.scatter(x, y)
    • 도수분포도(Histogram) 그리기: plt.hist(x)
    • 그래프 출력: plt.show()
    • 그래프 지우기" plt.clf()

     

    등의 작성이 가능합니다. 여기서는 간단한 예시를 들어볼텐데요, 더욱 많은 그래프 또는 옵션을 확인하고 싶다면 Matplotlib 공식 문서 를 방문해 보시는 것을 추천드립니다.

     

     

    선 그래프(Line plot) 그려보기


    앞서 배운 내용을 토대로, 파이썬 Matplotlib을 이용해 인구 그래프를 작성해 보도록 하겠습니다. 그래프를 그리기 위해서는 입력값이 필요한데요, 별도로 데이터를 입력해도 무관하지만, 이번에는 연도와 인구수를 리스트 형식으로 저장한 pop.py 파일을 이용해 그래프를 그려보겠습니다. 링크를 클릭해 pop.py 파일을 다운로드한 뒤, 코드를 적을 폴더와 같은 폴더로 이동시켜 주세요.

     

    pop.py
    0.00MB

     

     

    pop.py 파일에는 popyear, x, y 라는 변수가 있습니다. 파이썬에서 패키지를 불러오듯이 import pop 이라고 적으면, pop.poppop.year 라는 변수로 사용할 수 있으니 참고해 주세요.

     

     

    import pop
    
    # 길이가 길어서 앞에서 5개만 미리보기를 하겠습니다
    print(pop.pop[:5])
    print(pop.year[:5])
    print(pop.x[:5])
    print(pop.y[:5])
    [2.53, 2.57, 2.62, 2.67, 2.71]
    [1950, 1951, 1952, 1953, 1954]
    [40, 41, 13, 22, 41]
    [15, 11, 53, 44, 86]

     

     

    이 데이터로는 선 그래프를 그려보도록 하겠습니다. x축으로는 연도(pop.year), y축으로는 인구밀도(pop.pop)를 사용해 보겠습니다.

     

     

    import matplotlib.pyplot as plt
    
    plt.plot(pop.year, pop.pop)
    plt.show()

     

     

    위 코드를 이용해 그래프를 그리면, 위에 보이는 사진과 같이 완성된 그래프가 보여집니다. 여기서는 다양한 옵션을 통해 축 단위 조절이나 제목 추가 등의 변경을 할 수 있는데, 예를 들어 아래에서 두번째 줄에 plt.xscale('log')를 입력해 x축을 로그값으로 표시하는 등의 변경이 가능하답니다.

     

     

    산점도(Scatterplot) 그려보기


    Matplotlib를 이용해서 산점도를 그릴 수도 있습니다. 산점도 그리기를 위한 코드는 위에서 사용한 코드에서 그래프의 이름 정도만 바꿔주면 됩니다. 그래프를 그린 결과물은 아래 코드와 같으니 참고해 주세요. 이 그래프에서는 pop.py 파일의 x, y 요소를 사용해 보겠습니다.

     

     

    plt.scatter(pop.x, pop.y)
    plt.show()

     

     

    pop.xpop.y 는 각각 0~100 범위의 임의의 숫자이므로, 무질서한 산점도가 그려진 것을 확인할 수 있습니다.

     

     

    도수분포도(Histogram) 그려보기


    Matplotlib에서는 다른 그래프뿐만 아니라 도수분포도(히스토그램, Histogram)과 같은 도표도 그려볼 수 있습니다. 이 역시 기존 그래프 코드와 마찬가지로 이름만 설정해 주면 되는데요, plt.hist() 메소드를 사용하니 참고해 주시기 바랍니다.

     

     

    plt.hist(pop.pop)
    plt.show()

    반응형

    댓글

문의: jwkang3929@naver.com