본문 바로가기

Python/데이터 시각화

[Python] 초보자도 마스터하는 Matplotlib에서 범례(Legend) 표시

반응형

Legend는 범례라는 뜻으로 데이터 시각화에 있어서 아주 간단하면서도 핵심적인 정보를 전달해주는 요소이다. 이번 포스팅에서는 기본적으로 어떻게 사용하는지부터 시작하여 위치, 폰트, 테두리 설정 등 데이터 시각화할 때 바로 사용할 수 있는 팁을 위주로 설명하고자 한다. 

 

목차

1. 예시 데이터 및 matplotlib Legend의 기초

2. plt.legend의 위치 설정하기

3. plt.legend 열과 행 개수 지정하기

4. 폰트 및 글자 크기 조절하기

5. 범례 제목 설정하기

6. 기타 알아두면 좋은 기능 모음

     

    1. 기초 데이터셋 및 Matplotlib Legend 기초 사용법

     

    여기에서는 예시 데이터와 다른 시각화 방식은 주 내용이 아니기에 아래의 코드를 공유할 것이다. 따라서 참고를 할 때도 자기가 원하는 부분만 취사선택하여 가져가길 바란다. 

     

    • 기초 데이터 및 Line Plot의 시각화 방법 안내'

    범례가 없는 Line Plot는 정보를 전달하지 못 한다.
    범례가 없는 Line Plot

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ## 기초데이터 - 2차 함수
    = np.linspace(0,1000,1000)
     
     
    ##시각화1 데이터
    y1 = (x-400)**2 + 400000
     
    ## 시각화2 데이터
    y2 = (x-400)**2 + 40000
     
    plt.plot(y1)
    plt.plot(y2)
    cs

     

    데이터는 아주 기초적인 2차함수이고, 시각화 방식은 Line Plot 형태를 활용하였다. 이해하기 귀찮으면 바로 위에 있는 코드를 그냥 가져다 쓰는 것을 추천한다. 

     

     

     

    • plt.legend 기초 사용 방법 안내
      • 기본문법: plt.legend( "원하는 텍스트를 넣어주세요"  )
        • Tip1. 텍스트 자리에는 시각화 한 차트의 개수 혹은 표현하고 싶은 범례만큼 넣어주면 된다.
        • Tip2. 범례는 리스트 형태의 인자도 받으니, 표현하고 싶은 개수만큼 넣어주면 된다. 이번 포스팅에서는 이 방법을 활용할 예정이다. 
        • Tip3. DataFrame에서 데이터를 가져오면 자동적으로 범례를 표현해주기도 한다. 

    List를 활용한 범례 표현

    1
    2
    3
    4
    5
    6
     
    plt.plot(y1)
    plt.plot(y2)
     
    ## 범례를 삽입하는 
    plt.legend(['함수1''함수2'])
    cs

     

    위의 그래프에서는 리스트 형태를 통해서 범례를 표현했다. 사실 여기까지는 모두가 알고 있는 내용일 것이기에 아주 간단하게만 설명하였다. 이제부터 데이터 시각할 때 어떻게 하면 범례를 통해서 더 정확하게 자신의 의도를 삽입할 수 있을지에 대한 팁을 전달하려고 한다. 

     

     

    2. plt.legend의 위치 설정하기

     

    범례의 위치는 기본적으로 알아서 잘 설정해주는데, loc 파라미터를 정의하여 동으로도 설정할 수 있는 방법은 총 10가지가 있다. 이에 대해서 필요할 때 편하게 찾아쓸 수 있도록 표로 정리해두려고 한다. 

     

    • plt.legend( loc = "위치를 설정해주세요"  ) 
      • tip1. 설정하지 않으면 자동으로 알아서 배치 
      • tip2. 위치는 String 혹은 INT64로 모두 설정이 가능하니 편한 방법 취사선택
    String으로 설정하는 위치  INT로 설정하는 위치 설명
    'best' 0 자동으로 알아서 최적의 위치
    'upper right' 1 우측 상향
    'upper left' 2 좌측 상향
    'lower left' 3 좌측 하향
    'lower right' 4 우측 하향
    'right' 5 우측
    'center left' 6 좌측 중앙
    'center right 7 우측 중앙
    'lower center' 8 중앙 하향
    'upper center' 9 중앙 상향
    'center' 10 중앙

     

     1번. 우측 상향에 설정한 범례 예시

    plt에서 우측 상향에 설정한 범례 예시이다.
     
    2번. 좌측 하단에 설정한 범례 예시

    좌측하단에 범례를 삽입할 수 있다.
    1
    2
    3
    4
    5
    6
    ## 1. 우측 상향에 설정한 범례
    plt.legend(['함수1''함수2'], loc = 'upper right')
     
    ## 2. 좌측 하단에 설정한 범례
    plt.legend(['함수1''함수2'], loc = 'upper right')
     
    cs

     

     

    3. plt.legend 열과 행 개수 지정하기

     

     

    범례의 열 개수는 ncol이라는 파라미터를 통해서 아주 쉽게 설정할 수 있다. 기본 문법은 아래의 설명을 참고하길 바란다. 

     

    ncol을 통해 plt.legend에서 열을 2개 설정하였다.
    열을 2개로 설정한 범례

     

    1
    2
    3
    4
    ## 열을 2개로 조정한 범례의 예시
    plt.legend(['함수1''함수2'], ncol = 2)
     
    cs

     

     

    4. 글자 크기 조절하기

     

    범례의 폰트 크기는 fontsize라는 명령어를 통해서 설정할 수 있다. 단순하게 자신의 그래프에 맞는 크기를 INT값으로 정의해주면 아주 손쉽게 표현할 수 있다.

    글자 크기를 키운 범례
    글자 크기를 키운 범례

    1
    2
    ## 폰트 사이즈를 조절한 명령어
    plt.legend(['함수1''함수2'] , fontsize = 22 );

    cs

     

     

     

     

    5. 범례 제목 설정하기

     

    범례의 제목은 String과 Fontsize를 조절하는 것이 핵심이다. 각각의 명령어는 title과 title_fontsize로 쉽게 조절할 수 있다.

    제목 크기를 조절한 plt.legend
    제목 크기를 조절한 범례

    1
    2
    3
    4
    5
    ## 범례 제목 및 크기를 설정하는 명령어
    plt.legend(['함수1''함수2'] , fontsize = 12 
              , title = '함수목록'
              , title_fontsize = 15
              );
    cs

     

     

     

    6. 범례의 테두리 및 배경색 설정하기

     

    범례의 테두리와 배경색 또한 파라미터만 잘 보면 설정하기 간단하다. 테두리와 관련해서는 설정여부, 투명도, 그리고 테두리 색상을 조절해볼 것이다. 여기에 배경색까지 조절해준다면 보다 선명한 범례를 만들어 줄 수 있을 것이다. 

     

    • plt.legend 테두리 관련한 파라미터 정리
      • frameon: 테두리를 보여줄지 말지 설정하는 기본 값. 기본적으로 true 값으로 설정되어 있다.
      • framealpha: 테두리의 투명도를 설정하는 파라미터이다. 
      • edgecolor: 테두리의 색상을 결정하는 파라미터이다. 개인적으로 검정색을 선호한다.
      • shadow: 테두리에 그림자 혹은 명암을 설정하는 파라미터이다. 
    • plt.legend 배경색 결정하는 파라미터
      • facecolor: 범례의 배경색을 달리하여 보다 강조할 수 있는 유용한 기능이다. 

    Python에서 테두리와 배경색을 조절한 범례
    Python에서 테두리와 배경색을 조절한 범례

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    plt.legend(['함수1''함수2'] , fontsize = 13 
              
              ## 범례 제목을 설정하는 파라미터
              , title = '함수목록'
              , title_fontsize = 15
               
              ## 테두리 관련한 파라미터 
              , frameon = True
              , framealpha = 0.4
              , edgecolor = 'black'   
              , shadow = True
             
              ## 범례의 배경색을 설정한 코드
              , facecolor = 'whitesmoke'
              );
    cs

     

    반응형