Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

AI와 데이터 사이언스의 이론과 실전

데이터 분석 - Matplotlib으로 데이터 시각화 본문

인공지능

데이터 분석 - Matplotlib으로 데이터 시각화

큐트아리 2023. 11. 15. 14:20
# 1행 3열 subplot
data1 = np.arange(1,100)
plt.subplot(131) # 1행 3열 에서 1번째 위치 , 생략
plt.plot(data1)

data2 = np.arange(0,100)
plt.subplot(132) # 1행 3열에서 2번째 위치 , 생략
plt.plot(data2)

data3 = np.arange(0,100)
plt.subplot(133) # 1행 3열에서 3번째 위치 , 생략
plt.plot(data3)
plt.show()

Matplotlib은 파이썬에서 데이터 시각화를 위한 강력하고 유연한 라이브러리입니다. 다양한 차트, 그래프, 플롯을 생성하여 데이터를 이해하고 전달하는 데 사용됩니다. 아래에서는 몇 가지 Matplotlib의 주요 기능을 사용한 데이터 시각화의 예시를 제시하겠습니다.

1. 설치 및 import

Matplotlib을 사용하려면 우선 설치하고 import해야 합니다.

pip install matplotlib
import matplotlib.pyplot as plt

 

2. 선 그래프(Line Plot)

데이터의 변화를 추적하는 데 사용되며, 시간에 따른 값의 변화를 잘 나타낼 수 있습니다.

# list를 1개만 넣을 경우 값들은 y값이 됨, x값은 자동으로 생성

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

 

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

1.1. 두개의 선 긋기

Matplotlib은 그래프의 선이 덮어씌워짐으로 하나의 plt.plot()에 두번 선을 그어주면 됩니다.

data1 = np.arange(1,50)
plt.plot(data1)
data2 = np.arange(50,100)
plt.plot(data2)
plt.show()

 

1.1. 여러개의 plot을 그리는 방법

  • subplot(row,column,no)
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) # 2행 1열에서 2번째 위치
plt.plot(data2)

plt.show()

 

# 1행 3열 subplot
data1 = np.arange(1,100)
plt.subplot(131) # 1행 3열 에서 1번째 위치 , 생략
plt.plot(data1)

data2 = np.arange(0,100)
plt.subplot(132) # 1행 3열에서 2번째 위치 , 생략
plt.plot(data2)

data3 = np.arange(0,100)
plt.subplot(133) # 1행 3열에서 3번째 위치 , 생략
plt.plot(data3)
plt.show()

 

3. 스타일 옵션

만약 한글 폰트가 깨질 경우 아래의 코드로 설치 후 진행해주세요

# 나눔폰트 시리즈 설치
!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)) # 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=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', 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='*', 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()

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.4,color='deeppink',width=0.5) # align='edge'쓰면 글자가 앞부분으로 정렬됨\
plt.show()

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.4,color='deepskyblue') # align='edge'쓰면 글자가 앞부분으로 정렬됨\
plt.show()