본문 바로가기
데이터 시각화 및 애플리케이션 개발

[Matplotlib] 파이썬을 이용하여 그래프 만들기

by 바다의 공간 2024. 6. 19.

1. Matplotlib

 

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

리디렉션 알림

 

www.google.com


설치하기

- 구글코랩에는 기본적으로 설치되어있지만 주피터를 사용할때는 또 따로 설치를 해야하기때문에 기록.

!pip install matplotlib

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

plot는 선 그래프를 넣어주는그래프입니다.

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


plt.plot([1,2,3,4],[1,2,3,4])
plt.show

 


넘파이를 이용할 수도있습니다.

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(행개수, 열개수, plot번호)
data1 = np.arange(1,50)
plt.subplot(2,1,1)          #2행 1열 1첫번째
plt.plot(data1)


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

plt.show()


2.스타일 옵션

# 한글 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=(3,4)) #플랏은 사이즈를 인치로 정함
plt.plot([1,2,3], [1,2,3])
plt.title('제목을 써주는 기능', fontsize=30)
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='deepskyblue', marker='o')
plt.plot(np.arange(10), np.arange(10)*2, color='deeppink', marker='v')
plt.plot(np.arange(10), np.arange(10)*3, color='gold', marker='*')

plt.show()

plt.figure(figsize=(15,10))
plt.title('마커설정', fontsize=30)
plt.plot(np.arange(10), np.arange(10), color='deepskyblue', marker='o', linestyle='-.')
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='*', ms=10, linestyle='')

plt.show()

ms는 별의 크기를 나타냅니다.

각각 linestyle을 설정하고 선의옵션을 변경할수 있습니다. 


범례 위치설정

- 기본 위치는 왼쪽 상단에 위치됩니다.

plt.legend(['10', '10*2', '10*3'], fontsize=15)

범례 위치q변경 (우측 하단)

plt.legend(['10', '10*2', '10*3'], fontsize=15, loc='lower right', ncol=3)

ncol은 col정렬(ㅡ 자) 기본값은 三기준으로 설정됩니다.

x,y축 리미트 선  설정

plt.xlim(0, 12)
plt.ylim(0, 30)

x,y눈금 글자(기울임) 설정

plt.xticks(rotation=30)
plt.yticks(rotation=30)

30도정도 기울임


막대그래프 만들기

x=['파이썬', '웹개발', '데이터분석', '머신러닝','딥러닝','컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]
plt.figure(figsize=(8, 5))
plt.title('AI 성적표', fontsize=30)
plt.ylabel('수강생 점수')
plt.bar(x, y, alpha=0.5, color='deeppink')
plt.show()


그래프 변형

barh를 사용하면 x와 y축이 변경됩니다.

x=['파이썬', '웹개발', '데이터분석', '머신러닝','딥러닝','컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]
plt.figure(figsize=(8, 5))
plt.title('AI 성적표', fontsize=30)
plt.xlabel('수강생 점수')
plt.barh(x, y, alpha=0.5, color='deepskyblue')
plt.show()