본문 바로가기

6.Numpy | Pandas | Crawling

5/22(월) IT K-DT(56일차) / 3.Matplotlib

 

 

3. Matplotlib

 

3-1. Matplotlib의 개요

 

파이썬 프로그래밍 언어를 사용하여 데이터 시각화를 위한 패키지.

데이터를 그래프나 차트로 시각적으로 표현할 수 있는 강력한 기능을 제공함.

다양한 그래프 유형을 지원하며, 선 그래프, 막대 그래프, 원 그래프, 히스토그램 등을 생성할 수 있음.

사용하기 쉽고 유연한 API를 제공하여 사용자가 그래프의 다양한 측면을 제어할 수 있음.

그래프의 축, 레이블, 제목, 범례, 스타일 등의 사용자 지정 또한 가능함.

다중 서브플롯을 생성하여 여러 그래프를 하나의 그림에 표시하는 기능을 제공하기도 함.
파이썬의 데이터 분석 생태계인 NumPy, 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

 

!pip install matplotlib
import matplotlib.pyplot as plt

 

plt.plot([ y값 ])
# 그래프 출력 메소드

(Google Colab이아닌 다른 환경에서는 plt.show()를 입력해야 그래프가 출력됨.)

plt.plot([1,2,3,4]) # 1,2,3,4는 y값을 의미하며, x값 [0,1,2,3]은 자동으로 생성.

 

 

plt.plot([ x값 ] , [ y값 ])

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

 

 

import numpy as np
data = np.arange(1,100)
plt.plot(data)
plt.show()

 


# 2개의 그래프를 출력하고 싶은 경우

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

 


# sub plot을 그리는 방법
plt.subplot(row, column, num)

rowxcolumn 격자 모양의 서브플롯을 생성하고, num 번째 (상단) 서브플롯을 선택.

 

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)

 


# 1*3  sub plot을 그리는 방법

 

data1 = np.arange(0,100)
plt.subplot(1,3,1) # 1행 3열 1번이라는 의미
plt.plot(data1)

data2 = np.arange(0,100)
plt.subplot(1,3,2) # 1행 3열 2번이라는 의미
plt.plot(data2)

data3 = np.arange(0,100)
plt.subplot(1,3,3) # 1행 3열 3번이라는 의미
plt.plot(data3)

print(plt.show())

 


3-2. 스타일옵션

 


#colab에 나눔체를 설치 → 상단메뉴 '런타임'에서 '다시시작 및 모두실행'을 클릭
#한글이 깨지지 않도록 해주는 역할을 함
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf
# colab에 설치한 글꼴을 설정
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])

 

 # 제목 및 X축, Y축의 스타일 변경

plt.title('타이틀', fontsize=30)
plt.xlabel('X축', fontsize=20)
plt.ylabel('Y축', fontsize=20, rotation=0) # 세로쓰기를 변경하고 싶은 경우, rotation=0을 주면 됨.
print(plt.show())

 

 

plt.figure(figsize=(15,10))

# 선 스타일 작성
plt.title('마커설정', fontsize=30)
plt.plot(np.arange(10), np.arange(10), color='r', marker='o', linestyle='')
plt.plot(np.arange(10), np.arange(10)*2, color='g', marker='v', linestyle='--')
plt.plot(np.arange(10), np.arange(10)*3, color='b', marker='*', linestyle='-.')

# 범례 작성
plt.legend(['10', '10*2', '10*3'], fontsize=15) # 기본위치와 형태: 왼쪽 상단, row 형태
plt.legend(['10', '10*2', '10*3'], fontsize=15, loc='lower right') # 우측 하단으로 위치 수정
plt.legend(['10', '10*2', '10*3'], fontsize=15, loc='lower right', ncol=3) 
# 기본형태를 col의 형태로 수정.

# x값의 범위설정
plt.xlim(0,12)
# y값의 범위설정
plt.ylim(0,30)

# x값의 회전
plt.xticks(rotation=30)
# y값의 회전
plt.yticks(rotation=30)



# 격자 설정
plt.grid()
print(plt.show())

 


# 막대그래프 출력

 

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

 

plt.figure(figsize=(8,5))
plt.bar(x, y, alpha=0.7, color='red') # 막대그래프를 의미. alpha = 투명도
# 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]

 

plt.figure(figsize=(8,5))
plt.barh(x, y, align='center', alpha=0.7, color='#e35f62') # 막대그래프를 의미. alpha = 투명도
plt.title('AI 성적표', fontsize=25)
plt.ylabel('학생점수')
plt.show()