ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 시각화 04 - Matplotlib (기본/스타일)
    빅데이터/Data Visualization 2022. 1. 21. 18:31

    유투버 '나도코딩'님 강의 참조

     

     

     

    - Matplotlib 이란?

    • 파이썬의 대표적인 과학 계산용 그래프 라이브러리
    • 선, 히스토그램, 산점도 등의 고품질 그래프 제공
    • 저수준 API를 이용하여 다양한 시각화 기능 제공
    • 다양한 운영체제와 그래픽 백엔드에서 동작 가능

     

     

    * 기본 세팅

    import matplotlib as mpl
    import matplotlib.pyplot as plt # 시각화 담당
    import numpy as np
    import pandas as pd

     

     

    01 기본 그래프 

    # 꺾은석 그래프
    x = [1,2,3]
    y = [2,4,8]
    
    plt.plot(x, y) # print() 문으로도 출력 가능 
    # ';'으로 타이틀 지울 수 있음

     

     

    - 타이틀, 폰트 설정

    # 타이틀 설정
    plt.plot(x,y)
    plt.title('Line Graph');
    
    # 한글 폰트 설정
    import matplotlib
    matplotlib.rcParams['font.family'] = 'Malgun Gothic' # 윈도우 전용
    matplotlib.rcParams['font.size'] = 15 #폰트 크기
    plt.plot(x,y)
    plt.title('꺽은선 그래프');
    
    
    # 사용 가능한 폰트 목록
    import matplotlib.font_manager as fm
    fm.fontManager.ttflist
    [f.name for f in fm.fontManager.ttflist]

     

    - 음수 처리

    matplotlib.rcParams['axes.unicode_minus'] = False

    ▶ 한글 + 마이너스 출력시 깨짐 방지 가능

     

     

     

     

    02 축

    * 기본 세팅은 모든 챕터에 따라 온다. 

    import matplotlib.pyplot as plt
    # 한글 폰트 설정
    import matplotlib
    matplotlib.rcParams['font.family'] = 'Malgun Gothic' # 윈도우 전용
    matplotlib.rcParams['font.size'] = 15 #폰트 크기
    matplotlib.rcParams['axes.unicode_minus'] = False
    
    x = [1,2,3]
    y = [2,4,8]

     


    - 그래프 세팅

    x = [1,2,3]
    y = [2,4,8]
    
    plt.plot(x,y);
    plt.title('꺾은선 그래프', fontdict={'family':'HYGungSo-Bold', 'size':20}) #개별 폰트 설정

     

    - 축 세팅

    # 축 정보 넣기
    plt.plot(x,y)
    plt.xlabel('X축', color='red', loc='right') # x축 loc는 'right, center, left' 가능
    plt.ylabel('Y축', color='#00aa00', loc='top') # y축 loc는 'top, center, botton' 가능
    plt.xticks([1,2,3])
    plt.yticks([3,6,9,12]);
    • '.xlabel' / '.ylabel' 을 사용하여 x,y축 설정 가능
    • 색상도 넣을 수 있고, HTML 방식의 색상 설정도 가능
    • 축의 위치 설정 가능
    • 그래프 값 설정 가능

    그래프 값 단위 변경 전
    변경 후

     

     

     

     

     

    03 범례

    • 범례는 그래프에서 데이터가 어떤것을 의미하는지 알려 준다
    plt.plot(x,y, label = 'Data-1')
    plt.legend(loc='upper right');
    • '.legend(loc='') 를 사용하여 범례를 조절 할 수 있으며 'loc=(값, 값)' 으로 범례를 놓고 싶은 부분에 놓을 수 도 있다

    plt.plot(x,y, label = 'Data-1')
    plt.legend(loc=(0.5, 0.5));

     

     

     

    04 그리드

    • 간단히 그래프 안에 격자를 넣어 보기 쉽도록 만드는 기술
    plt.plot(df['지원 번호'], df['영어']) # .plot(x,y)
    plt.plot(df['지원 번호'], df['수학']); # .plot(x,y)
    plt.grid()
    
    
    * x와 y축만 들고 올 수 있고, 색상, 투명도, 라인스타일, 굵기 등 설정 가능 하다.
    plt.grid(axis='y', color='red', alpha=0.5, ls=':', lw=2)

    05 스타일

    • 그래프를 사용시에 이 그래프에 대한 각종 스타일 조정이 가능 하다

    - 라인 및 마커 스타일

    # 선을 굵게
    plt.plot(x,y, linewidth=3);
    
    # 실선
    plt.plot(x,y,linestyle=':');
    
    # 동그라미로 시작, 꺾이는 부분, 끝 표시 가능
    plt.plot(x,y, marker='x'); # o,x,v 사용 가능, 
    
    # 라인을 없애고 표시만 남기기
    plt.plot(x,y,marker='v',linestyle='None', markersize=10); #'markersize로 크기 조절 가능'
    
    # 마커 색상 변경
    plt.plot(x,y,marker='v',markersize=10, markeredgecolor='red'); #'markeredgecolor로 색상 변경
    
    # 마커 안의 색상 변경
    plt.plot(x,y,marker='v',markersize=10, markeredgecolor='red', markerfacecolor='yellow'); #'markerfacecolor 색상 변경
    
    # 투명도
    plt.plot(x,y,marker='o', mfc='red', ms=10, mec='blue', ls=':', alpha=0.3); # alpha로 투명도 조절
    
    # 그래프 크기
    plt.figure(figsize=(10, 5)) # 'figsize=(넓이, 높이) #dpi 로 해상도 조절 가능
    plt.plot(x,y);
    
    # 그래프 배경색
    plt.figure(facecolor='yellow')
    plt.plot(x,y)

    HTML 값도 사용 가능

    ▶ 마커에 대한 추가적인 정보는 다음 링크로 (https://matplotlib.org/stable/api/markers_api.html)

    ▶ 선 스타일은 아래 참조

    plt.plot(x,y, linestyle='--')
    plt.plot(np.random.rand(10), color='gold')
    plt.plot(np.random.rand(10), 'g:')
    plt.plot(np.random.rand(10), color='#1234FF')

    HTML 색상도 적용 가능

     

     

    ▶ 스타일을 하나의 포맷으로 넘길수도 있다

    # 스타일 포맷으로 넘기기
    plt.plot(x,y, 'ro--') # 'r(color)' / 'o(marker)' / '--(linestyle)'
    plt.plot(x,y, 'bv:') 
    plt.plot(x,y, 'go')

     

     

    ▶ 라인/마커에 대한 축약어도 존재 한다

    # 마커 축약어
    plt.plot(x,y,marker='o', mfc='red', ms=10, mec='blue', ls=':');
    # mfc = markerfacecolor
    # ms = markersize
    # mec = markeredgecolor
    # ls = linestyle

     

     

Designed by Tistory.