본문 바로가기
데이터분석/실습

01. Matplotlib

by 사라리24 2024. 5. 27.
SMALL

1. Matplotlib

 

  • 파이썬 기반 시각화 라이브러리
  • 한글에 대한 지워이 완벽하지 않음
  • pandas와 연동이 용이함

 

 

 

  • 설치
  
 
             !  pip install matplotlib  
 
 
 

 

  • import
      
      import  matplotlib.pyplot  as plt  #별칭 사용
 
     # MATLAB과 비슷하게 명령어 스타일로 동장하는 함수들의 모음
 

 

 

  • 예시
 
 
          # 리스트의 값들은 y값들이며, X값은 자동으로 만들어줌
          plt.plot([1,2,3,4])
          plt.show()
 
  

 

 

  •  
  
 
        # X값 [1,2,3,4]
        # Y값 [1,5,10,15]
        plt.plot([1,2,3,4], [1,5,10,15])
        plt.show()
 
 

 

 

  • numpy 사용 하기
 
 
 
        import numpy as np

        data = np.arange(1,100)
        plt.plot(data)
        plt.show()
 
 
  

 

 

  • 두개의 선 만들기
  
 
          # 두개 선 만들기
          data1  = np.arange(1, 50)
          plt.plot(data1)
          data2 = np.arange(50, 100)
          plt.plot(data2)
          plt.show()
 
  

 

  • 여러개의 plot을 그리는 방법 
    (subplot(row, column, no))
 
 
        data1 = np.arange(1, 50)
        plt.subplot(2, 1, 1)
        plt.plot(data1)

        data2 = np.arange(50, 100)
        plt.subplot(2, 1, 2)
        plt.plot(data2)

        plt.show()
 
 

 

  • 예시
  
 
          # 1행 3열 짜리 Subplot
          data1 = np.arange(0, 100)
          plt.subplot(1, 3, 1)
          plt.plot(data1)

          data2 = np.arange(0, 100)
          plt.subplot(1, 3, 2)
          plt.plot(data2)


          data3 = np.arange(0, 100)
          plt.subplot(1, 3, 3)
          plt.plot(data3)

          plt.show()
 
 
  

 

 

2. Matplotlib의 스타일 옵션

 

 

 

  • 스타일 옵션
    plt.figure(figsize = (인치 사이즈, 인치 사이즈))
 
 
        plt.figure(figsize = (6, 8))
        plt.plot([1,2,3], [1,2,3])
        plt.plot([1,2,3], [2,4,6])
        plt.title('제목', fontsize=30)
        plt.xlabel('X축', fontsize=30)
        plt.ylabel('Y축', fontsize=30)
        plt.show()
 
  



  • 주의점: 한글 지원 안함


 

  • 한국어 폰트 설치

  
          # 한글 fonts-nanum 설치
          !sudo apt-get install -y fonts-nanum
          !sudo fc-cache -fv
          !rm ~/.cache/matplotlib -rf
 
 
  

 

  • 한국어 폰트 등록

 
          # 폰트 등록
          plt.rc('font', family='NanumBarunGothic')
 
  

 

  • 확인

  
        plt.figure(figsize=(6,8)) #inch
        plt.plot([1,2,3],[1,2,3])
        plt.plot([1,2,3],[2,4,6])
        plt.title('제목', fontsize=30)
        plt.xlabel('X축', fontsize=20)
        plt.ylabel('Y축', fontsize=20, rotation=30)
        plt.show()
 
  

 

 

  • 마커설정
  
 
          plt.figure(figsize=(15,10))
          plt.title('마커설정', fontsize=30)
          plt.plot(np.arange(10), np.arange(10))
          plt.plot(np.arange(10), np.arange(10)*2)
          plt.plot(np.arange(10), np.arange(10)*3)
          plt.show()
 
  

 

  • 옵션 추가 예시
 
 

          plt.figure(figsize=(15,10))
          plt.title('마커설정', fontsize=30)
          plt.plot(np.arange(10), np.arange(10), color='deepskyblue', marker='o', linestyle='-.', ms=10)
          plt.plot(np.arange(10), np.arange(10)*2, color='deeppink', marker='v', linestyle='--')
          plt.plot(np.arange(10), np.arange(10)*3, color='gold', marker='*', linestyle='')
 
          plt.show()
 
 
@ 마커 스타일
marker = 'o' 동그라미  
marker = 'v' 화살표 
marker = '*' 별



@ 라인 스타일
linestyle='-'  선
linestyle='--'  점선
linestyle='' 선삭제

@ 점 크기
ms = 10

 

  • 옵션 범례 추가 예시

 
          # 범례 기본 위치는 왼쪽 상단
          # loc='lower right': 오른쪽 아래로 이동
          plt.legend(['10', '10*2', '10*3'], fontsize=15, loc='lower right', ncol=3)

          plt.show()
 
 

 

 

 

  • x축, y축 범위 늘리기 

 
 
          # x축, y축 범위 늘이기
          plt.xlim(0, 12)
          plt.ylim(0, 30)

          plt.show()
 
 

 

  • 그리드 넣기
 
 
        # 배경 설정
        plt.grid()

        plt.show()
  
 

 

 

2. Matplotlib의 막대그래프

 

 

 

  • 세로 막대그래프 그리기
 
 
          x = ['파이썬','데이터분석','머신러닝','딥러닝','자연어처리','컴퓨터비전']
          y = [95, 80, 75, 60, 55, 40]
          plt.figure(figsize=(8,5))
          plt.title('Al 성적표', fontsize=25)
          plt.ylabel('수강생 점수')
          plt.bar(x,y,alpha=0.4, color='deeppink')
          plt.show()
 
 

 

  • 가로 막대그래프 만들기
    : bar -> h 만 추가하면 x축과 y축이 바뀜
  
 
          x = ['파이썬','데이터분석','머신러닝','딥러닝','자연어처리','컴퓨터비전']
          y = [95, 80, 75, 60, 55, 40]
          plt.figure(figsize=(8,5))
          plt.title('Al 성적표', fontsize=25)
          plt.xlabel('수강생 점수')
          plt.barh(x,y,alpha=0.4, color='deepskyblue')
          plt.show()