이 글에서는 시각화에 유용한 라이브러리, matplotlib를 소개한다.

matplotlib란?
종합적인 시각화를 지원하는 라이브러리로서, 정적, 동적인 시각화 모두 가능하다. 수학 수업에서는 주로 그래프를 그리는 도구로 인식된다. sympy와 달리, 식으로 표현되지 않는 비정형 데이터도 표현할 수 있다.
matplotlib의 상태기반 인터페이스
matplotlib.pyplot을 이용하여 시각화할 때는 특유의 상태기반 인터페이스를 먼저 이해해야 한다. 예를 들어, 아래와 같이 세 점을 잇는 꺾은선 그래프를 출력할 때, matplotlib.pyplot은 1) 좌표평면, 2) 선 등 필요한 모든 자료를 먼저 만들어 놓고, 마지막에 plt.show() 명령어를 통해 1), 2)를 한꺼번에 쌓아서 출력한다. matplotlib는 내부적으로 ‘그릴 준비가 된’ 상태를 유지하다가 plt.show() 명령어가 입력되면 그림을 최종적으로 출력한다.
import matplotlib.pyplot as plt
# 1. 새 figure와 축 생성
plt.figure()
# 2. 데이터 추가(이 상태가 저장됨)
plt.plot([1,2,3,4], [1,4,2,3]) # 현재 활성 축에 선 추가
# 3. 표시 요청
plt.show() #모든 '레이어'를 그려줌
matplotlib.pyplot.figure() 에 대한 이해
matplotlib.pyplot.figure(), 줄여서 plt.figure() 함수는 그림에 비유하면 도화지를 생성하는 함수이다. figure는 축, 점, 곡선, 그래프 제목 등 모든 요소를 감싸는 전체 캔버스이며 아래와 같은 특징이 있다.
plt.figure() 특징
- 그래프의 전체 캔버스에 해당
- 가로, 세로 기본 크기 지정 가능(단위: inch)
- 하나의 figure 안에 여러 개 그래프 배치 가능
- 여러 figure를 생성 가능하며, 이 때 각각의 figure 간에는 서로 영향을 끼치지 않는다.
Axes에 대한 이해
figure가 도화지라면, axes는 하나의 그래프 전체를 의미한다. figure에 표시되는 모든 축, 점, 그래프, 제목, 선, 곡선 등을 모두 합한 것을 총칭하는 객체라고 생각하면 된다.
figure의 각 파트
figure와 그 구성 요소를 알기 쉽게 나타낸 이미지가 있어 소개한다.

matplotlib 예제
① 꺾은선 그래프
아래는 간단한 꺾은선 그래프 예제이다.
import matplotlib.pyplot as plt
# 1. 새 figure와 축 생성
plt.figure()
# 2. 데이터 추가(이 상태가 저장됨)
plt.plot([1,2,3,4], [1,4,2,3]) # 현재 활성 축에 선 추가
# 3. 표시 요청
plt.show() #모든 '레이어'를 그려줌
② 다항함수(일차함수, 이차함수, 삼차함수) 그래프 출력
fig, ax = plt.subplots(figsize=(5, 2.7), layout='constrained')
ax.plot(x, x, label='linear') # Plot some data on the Axes.
ax.plot(x, x**2, label='quadratic') # Plot more data on the Axes...
ax.plot(x, x**3, label='cubic') # ... and some more.
ax.set_xlabel('x label') # Add an x-label to the Axes.
ax.set_ylabel('y label') # Add a y-label to the Axes.
ax.set_title("Simple Plot") # Add a title to the Axes.
ax.legend() # Add a legend
③ 산점도 출력
fig, ax = plt.subplots(figsize=(5, 2.7), layout='constrained')
ax.scatter(data1, data2, s=50, facecolor='C0', edgecolor='k')

>>강의 목록 가기
>>이전 강의 가기(1강.matplotlib)
>>다음 강의 가기(3강.matplotlib)
댓글 남기기