프로그래밍 언어/Python

[파이썬 개념 정리 6]Matplotlib 라이브러리 개념 정리

ourkofe's story 2024. 6. 29. 00:44

이번 글은 코드잇 강의를 수강하면서 배운 내용을 주로 하여 정리되어 있습니다. (코드잇 스프린트 데이터 애널리스트 트랙 1기 훈련생)


Matplotlib

  • 파이썬과 넘파이를 기반으로 만들어진 데이터 시각화 라이브러리
  • 시각적으로 표현해서 데이터를 요약해서 볼 수 있다는 장점이 있다.
  • 시각화 그래프의 종류
    • 선 그래프 (Line Graph)
    • 막대 그래프 (Bar Graph)
    • 산점도 (Scatter Plot)
  • Matplotlib은 pyplot으로 호출한다.

pyplot

Matplotlib 라이브러리 호출 방법

import numpy as np
import matplotlib.pyplot as plt

선 그래프

시간의 흐름에 따라서 어떤 값이 어떻게 바뀌었는지 알 수 있는 그래프이다.

# 선 그래프 작성 코드
plt.plot(array1, array2) # (x축,y축)
plt.show()

 


막대 그래프

데이터의 수치를 막대로 표현해 막대의 길이를 가지고 서로 비교 가능한 그래프이다.

# 막대 그래프 작성 방법
plt.bar(array1, array2) # (x축,y축)
plt.show()

산점도 그래프

두 변수의 연관성을 파악하기 위해 사용하는 그래프이다.

# 산점도 그래프 작성 코드
plt.scatter(array1, array2) # (x축,y축)
plt.show()

그래프 꾸미기

plt.scatter(height_array, weight_array)
plt.title('Height and Weight') # 이름 설정
plt.xlabel('Height (cm)') # x축 이름 설정
plt.ylabel('Weight (kg)') # y축 이름 설정
plt.show()
plt.scatter(height_array, weight_array, c = 'red', marker = 's') # 마커 색깔과 모양 변경 가능 c: 마커의 색깔 marker : 마커의 모양 
plt.show()

다양한 marker 옵션 알아보기(matplotlib 공식 문서)


그래프 조절하기

# 따로 설정을 하지 않으면 가로 6인치, 세로 4인치 크기의 그래프가 나옵니다.
plt.figure(figsize=(10, 4)) 
plt.scatter(height_array, weight_array)
plt.title('Height and Weight')
plt.xlabel('Height (cm)')
plt.ylabel('Weight (kg)')
plt.show()
# pyplot의 rcParams 속성에 직접 접근하여 그래프 사이즈의 기본 설정을 변경할 수 있습니다. 
plt.rcParams['figure.figsize'] = (5, 5)
plt.scatter(height_array, weight_array)
plt.title('Scatter Plot')
plt.xlabel('X Label')
plt.ylabel('Y Label')
plt.show()

그래프에 한글로 된 텍스트 넣기

plt.rc('font', family='AppleGothic')

시각화 라이브러리

  • 시각화 라이브러리의 종류
    • matplotlib
    • seaborn

seaborn 라이브러리로 작성한 그래프가 더 이쁘게 그려지며, matplotlib으로 작성하는 그래프는 세부적인 설정이 더 가능하다.


이번 글에서는 matplotlib / pyplot / 선 그래프 / 막대 그래프 / 산점도 그래프 / 그래프 꾸미기, 조절하기 / 한글로 된 텍스트 넣기가 포함된 내용을 정리했으며, 파이썬을 통해 코드를 작성하는 경우에 모두 필수적인 개념들로 꼭 잊지 말고 알아가야 하는 내용인 것 같습니다.

글 읽어주셔서 감사합니다.


출처 및 참고자료 : 코드잇 사이트 강의 '데이터 사이언스 Toolkit' https://www.codeit.kr/topics/data-science-toolkit

 

728x90