ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Matplotlib] Matplotlib을 이용해 그래프 양식 설정하기
    Python/시각화 2023. 4. 28. 08:42
    반응형

    Matplotlib을 이용해 그래프 양식 설정하기


    파이썬(Python)을 이용해서 도표를 그릴 때, 다른 그래픽 프로그램에 비해서 불편하다고 생각하는 사람들이 있습니다. 파이썬 시각화는 코드로 적는 부분이 어색하겠지만 GUI 그래픽 프로그램과는 차원이 다르게 편리한 자동화가 가능하기 때문에, 다양한 그래프 양식을 작성하는 코드를 배워본다면 좋을겁니다.

     

     

    레이블 및 제목 설정


    그래프를 그릴 때, 레이블(라벨, label) 설정을 이용해 더욱 보기 편하게 그래프를 작성할 수 있습니다. 맷플롯립(Matplotlib)에서는 이를 위한 메소드가 준비되어 있습니다.

     

    • x축 레이블 설정: plt.xlabel()
    • y축 레이블 설정: plt.ylabel()
    • 그래프 제목 설정: plt.title()

     

    위와 같은 메소드를 이용할수 있지요. 예를 들어, 아래의 그래프에서 x, y 레이블, 그리고 제목을 각각 추가해 본다고 가정합시다. 그래프를 그릴 때 필요한 정보는 pop.py 를 다운로드해서, 오늘 쓸 코드가 있는 폴더에 넣고 사용해 보세요.

     

    pop.py
    0.00MB

     

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

     

     

    위의 기본 소스코드에서, x/y 레이블, 그리고 제목을 작성해 봅시다. 이름은 따로 지을만한게 없으니, 단순하게 x축, y축, 제목 이라고 적어놓으면 어디에 어떤 글자가 들어가는지 이해하기 편하겠네요.

     

     

    plt.plot(pop.year, pop.pop)
    plt.xlabel('x축 이름')
    plt.ylabel('y축 이름')
    plt.title('도표 제목')
    plt.show()

     

     

    눈금 설정


    파이썬 Matplotlib으로 그래프를 그릴 때, 눈금 값을 원하는대로 설정할 수 있습니다. 예를 들어, 위 그래프의 x축을 1000, 100000000, 10000000000000 와 같은 방식으로 표현하는 대신 1K, 100M, 10T와 같이 SI 접두사로 표현하는 방식 등입니다.

     

     

    이와 같이 적당한 단위로 눈금을 설정해 본다면, 그래프의 가독성을 높이는 것은 물론이고 오타 또는 잘못 읽음으로 인한 문제를 효과적으로 해결할 수 있답니다. Matplotlib에서는 이와 같은 작업을 plt.xticks(), plt.yticks() 와 같은 메소드로 구현할 수 있습니다.

     

     

    plt.plot(pop.year, pop.pop)
    
    # 치환할 값을 지정한 변수들
    tick_val = [1950, 2000, 2100]
    tick_lab = ['1.95K', '2K', '2.1K']
    
    # x축 눈금 값을 설정하는 코드
    plt.xticks(tick_val, tick_lab)
    
    plt.show()

     

     

    그래프 색깔 변경하기


    파이썬 Matplotlib 패키지는 도표의 색깔을 마음대로 설정할 수 있도록 하는 기능이 있습니다. 이러한 기능은 그래프를 그릴 때, color 옵션을 조절함으로써 설정할 수 있는데요, 이외에도 alpha 옵션을 조절해서 불투명도를 조절하는 작업 등을 추가하면 고급스러운 디자인의 그래프를 손쉽게 만들어낼 수 있습니다. 이 코드의 예시는 위 그래프에서 색깔과 불투명도만 바꿔 보겠습니다.

     

     

    # 빨간색, 불투명도 30% 그래프 그리기
    plt.plot(pop.year, pop.pop, color='red', alpha=0.3)
    
    # 치환할 값을 지정한 변수들
    tick_val = [1950, 2000, 2100]
    tick_lab = ['1.95K', '2K', '2.1K']
    
    # x축 눈금 값을 설정하는 코드
    plt.xticks(tick_val, tick_lab)
    
    plt.show()

     

     

    그래프 격자 배경 그리기


    그래프를 읽을 때, 눈금이 좁거나 특정 값을 찾아가기 어려울 정도로 커다란 그래프의 경우에는 배경에 격자 무늬를 넣어주기도 합니다. 가독성을 중시하는 분들은 파이썬으로 그래프를 그릴 때도 격자 배경을 넣어주는 것을 선호하는데요, 이 기능은 한 줄의 코드로 간단하게 구현할 수 있습니다.

     

     

    # 빨간색, 불투명도 30% 그래프 그리기
    plt.plot(pop.year, pop.pop, color='red', alpha=0.3)
    
    # 치환할 값을 지정한 변수들
    tick_val = [1950, 2000, 2100]
    tick_lab = ['1.95K', '2K', '2.1K']
    
    # x축 눈금 값을 설정하는 코드
    plt.xticks(tick_val, tick_lab)
    
    # 격자 배경 그리기
    plt.grid(True)
    
    plt.show()

     

     

    그래프 안에 글자 적어넣기


    만약에 그래프의 특정 지점에 메모를 해야 할 경우가 생길수도 있습니다. 이 때는 적당한 좌표를 잡아서 메모를 적어넣어 부연설명을 할 수 있는데요, 코드는 plt.text(x좌표, y좌표, 원하는 문자열) 형식으로 작성하면 됩니다. 이 때, 정확한 좌표를 적어넣기보다는, 글자가 그래프를 가리지 않도록 약간 이동해 적는 것을 추천드립니다.

     

     

    # 빨간색, 불투명도 30% 그래프 그리기
    plt.plot(pop.year, pop.pop, color='red', alpha=0.3)
    
    # 치환할 값을 지정한 변수들
    tick_val = [1950, 2000, 2100]
    tick_lab = ['1.95K', '2K', '2.1K']
    
    # x축 눈금 값을 설정하는 코드
    plt.xticks(tick_val, tick_lab)
    
    # 격자 배경 그리기
    plt.grid(True)
    
    # '2000년도의 인구밀도' 라는 설명 적어넣기
    plt.text(2005, 6, '2000년도의 인구밀도')
    
    plt.show()

    반응형

    댓글

문의: jwkang3929@naver.com