3. Matplotlib
3-1. Matplotlib의 개요
파이썬 프로그래밍 언어를 사용하여 데이터 시각화를 위한 패키지.
데이터를 그래프나 차트로 시각적으로 표현할 수 있는 강력한 기능을 제공함.
다양한 그래프 유형을 지원하며, 선 그래프, 막대 그래프, 원 그래프, 히스토그램 등을 생성할 수 있음.
사용하기 쉽고 유연한 API를 제공하여 사용자가 그래프의 다양한 측면을 제어할 수 있음.
그래프의 축, 레이블, 제목, 범례, 스타일 등의 사용자 지정 또한 가능함.
다중 서브플롯을 생성하여 여러 그래프를 하나의 그림에 표시하는 기능을 제공하기도 함.
파이썬의 데이터 분석 생태계인 NumPy, Pandas와도 통합될 수 있음.
공식 홈페이지 :
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()