본문 바로가기
Python/Data Analysis

[파이썬, Python] Matplotlib - 시각화 라이브러리

by coding-choonsik 2023. 6. 13.
728x90
반응형
SMALL

1. Matplotlib

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

Matplotlib — Visualization with Python

seaborn seaborn is a high level interface for drawing statistical graphics with Matplotlib. It aims to make visualization a central part of exploring and understanding complex datasets. statistical data visualization Cartopy Cartopy is a Python package des

matplotlib.org

 

1-1. 라이브러리 설치 및 import

# 설치
!pip install matplotlib

# 임포트
import matplotlib.pyplot as plt

2. plot

  • 그래프를 그려주는 함수
  • 리스트를 보냈을 때 리스트의 값들이 y값들이며 x값 [0,1,2,3] 을 자동으로 생성
plt.plot([1,2,3,4])
plt.show()

 

plt.plot([1,4,10,15])
plt.show()

 

# plot(x값, y값), plot(y값)
plt.plot([1,2,3,4], [1,4,10,15])
plt.show()

 

data = np.arange(1, 100)  # 1부터 99까지
plt.plot(data)
plt.show()

 

 

# 한 화면에 두개의 그래프 그리기
data1 = np.arange(1, 50)
plt.plot(data1)
data2 = np.arange(50, 100)
plt.plot(data2)
plt.show()

 

 

2-1. subplot

  • 여러개의 plot을 한번에 그리는 방법
  • subplot(row, column, idx) 
data1 = np.arange(1, 50)
plt.subplot(2,1,1)   # 2행 1열의 첫번째 그래프
plt.plot(data1)

data2 = np.arange(50, 100)
plt.subplot(2,1,2)   # 2행 1열의 두번째 그래프
plt.plot(data2)

plt.show()

# 1행 3열 subplot
data1 = np.arange(1,100)
plt.subplot(131)  # plt.subplot(1, 3, 1)
plt.plot(data1)

data2 = np.arange(1,100)
plt.subplot(132)  # plt.subplot(1, 3, 1)
plt.plot(data2)

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

plt.show()


2. 스타일 옵션

 

2-1. 한글 글꼴 적용하기

  • 코랩에 나눔체 설치  -> 설치한 다음 상단메뉴 '런타임' -> 다시 시작 및 모두 실행
!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)  # 한글이 깨짐 -> 한글을 설치하기

# x축, y축 라벨
plt.xlabel('X축', fontsize=20)
plt.ylabel('Y축', fontsize=20, rotation=0) 
 

plt.show()

 

 

 

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='-.')

# 범례 설정
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()


3. bar

x = ['파이썬', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전', '자연어처리']
y = [95, 80, 65, 30, 20, 5]


plt.figure(figsize=(8, 5))
plt.bar(x, y, align='edge',alpha=0.7, color='red')  # align='edge': 앞부분이 글자가 앞으로 오게함
plt.title('AI 성적표', fontsize=25)
plt.ylabel('학생점수')

plt.show()

 

x = ['파이썬', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전', '자연어처리']
y = [95, 80, 65, 30, 20, 5]

# x축과 y축을 바꾸어 나타내기(x축의 이름이 길어질때)
plt.figure(figsize=(8, 5))
plt.barh(x, y, align='center',alpha=0.7, color='#e35f62')  # align='edge': 앞부분이 글자가 앞으로 오게함
plt.title('AI 성적표', fontsize=25)
plt.ylabel('학생점수')

plt.show()

 

 

728x90
반응형
LIST