본문 바로가기
수업 복습/크롤링과 데이터분석

Matplotlib

by 김복칠 2024. 4. 15.

1. Matplotlib

  • 파이썬 기반 시각화 라이브러리
  • 한글에 대한 지원이 완벽하지 않음
  • pandas와 연동이 용이함
  • https://matplotlib.org
!pip install matplotlib

# MATLAB과 비슷하게 명령어 스타일로 동작하는 함수의 모음
import matplotlib.pyplot as plt
import numpy as np

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

 

  • 먼저 matplotlib 을 install 해서 다운받아 줍니다
  • 그리고 필요한 모듈들을 import 해서
  • 활용할 수 있게 설정해 준 뒤 임의의 데이터를 입력해 확인해 봅니다
data = np.arange(1,100)
plt.plot(data)
plt.show()

  • arange 함수는 범위를 설정할 수 있는 함수입니다
  • 그래프 출력해보면 정비례 그래프가 출력되는걸 볼수 있습니다
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()

  • subplot을 활용해서 그래프를 여러개로 나눠서 확인할 수 있습니다
  • 첫번째 항목은 세로, 두번째 항목은 가로, 세번째 항목은 출력하고자 하는 위치를 입력해서 출력해주면 됩니
# 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()

subplot 을 활용해 세로로 출력하는 경우

2. 스타일 옵션

# matplotlib 디자인 관련 옵션 다운로드
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf

# 한글 기능 호환 입력
plt.rc('font', family='NanumBarunGothic')
  • 이번에는 그래프의 다양한 디자인을 입혀보기 위해 설정들을 입력해줍니다

2-1. 첫번째 설정

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=0)
plt.show()

2-2. 두번째 설정

# 새로운 figure 생성, 가로15/세로10 으로 설정
plt.figure(figsize=(15,10))
plt.title('마커설정',fontsize=30)
plt.plot(np.arange(10), np.arange(10), color='b', marker='o', linestyle='-.')
plt.plot(np.arange(10), np.arange(10)*2, color='r', marker='v', linestyle='--')
plt.plot(np.arange(10), np.arange(10)*3, color='y', marker='*', linestyle='')

# 범례 생성 / 오른쪽 아래에 생성(기본 위치는 왼쪽 아래)
# 이름은 '10','10*2','10*3', ncol 로 3열로 설정
plt.legend(['10','10*2','10*3'], fontsize=15, loc='lower right', ncol=3)

plt.xlim(0,12)
plt.ylim(0,30)
plt.xticks(rotation=30)
plt.yticks(rotation=30)

plt.grid()
plt.show()

2-3. 세번째 설정

x = ['파이썬','데이터분석','머신러닝','딥러닝','자연어처리','컴퓨터비전']
y = [95,80,75,50,40,25]
plt.figure(figsize=(8,5))
plt.title('AI 성적표', fontsize=25)
plt.ylabel('수강생 점수')
plt.bar(x,y,alpha=0.5, color='deeppink') # align='edge'
plt.show()

2-4. 네번째 설정

x = ['파이썬','데이터분석','머신러닝','딥러닝','자연어처리','컴퓨터비전']
y = [95,80,75,50,40,25]
plt.figure(figsize=(8,5))
plt.title('AI 성적표', fontsize=25)
plt.ylabel('수강생 점수')
plt.barh(x,y,alpha=0.5, color='deepskyblue') # align='edge'
plt.show()

'수업 복습 > 크롤링과 데이터분석' 카테고리의 다른 글

데이터 분석 활용 - 가상 쇼핑몰 데이터 예제  (0) 2024.04.17
판다스  (0) 2024.04.01
넘파이  (0) 2024.04.01
크롤링(Crawling)  (0) 2023.12.27