[Python] Matplotlib.pyplot 사용하기

먕먕·2022년 2월 11일
0

EDA시 주로 사용하는 Matplotlib의 기본적인 함수부터 유용한 함수에 대해 정리하도록 한다.

1. 기본 사용

기본적인 그래프를 그리는 방법은 다음과 같다.

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4], [10, 20, 30, 40])
plt.show() # 그림 표시 함수

아래 방법으로도 사용 가능하다.

data = {'x': [1, 2, 3, 4], 'y': [10, 20, 30, 40]}
plt.plot('x', 'y', data=data)
plt.show()

2. 제목 & 축 레이블

title함수는 제목 / xlabel, ylabel 함수로 축 레이블을 설정할 수 있다.
labelpad 파라미터를 주면 축 레이블의 여백(padding)을 지정할 수 있다.

plt.plot(['A', 'B', 'C'], [20, 30, 40])
plt.xlabel('X Label', labelpad=15)
plt.ylabel('Y Label')
plt.title('Plot')
plt.show()

3. 범례(legend)

하나의 그래프의 여러 개의 라인들을 추가하기 위해서는 plt.plot()함수를 plt.show()이전에 실행하면 된다.
범례는 다음과 같이 지정할 수 있다.

plt.plot([1, 2, 3], [4, 5, 6])
plt.plot([2, 3, 4], [7, 5, 4])
plt.legend(['A', 'B'])
plt.show()

4. 축 범위

xlim(), ylim(), axis() 함수를 통해서 축의 범위를 지정할 수 있다.

plt.plot([1, 2, 3, 4], [2, 3, 5, 10])
plt.xlim([0, 5])      # X축의 범위: [xmin, xmax]
plt.ylim([0, 20])     # Y축의 범위: [ymin, ymax]
plt.show()

5. subplot

여러개의 그래프를 한번에 그리고 싶을 때, subplot을 활용한다.

  • plt.subplot(nrow, ncol, pos)
import numpy as np
x = np.arange(1, 10)
y1 = x*5
y2 = x

plt.subplot(2,1,1)
plt.plot(x, y1)
plt.subplot(2,1,2)
plt.plot(x, y2)
plt.show()
  • plt.tight_layout(pad=1.08, h_pad=None, w_pad=None, rect=None): 자동으로 명시된 여백에 관한 subplot 파라미터 조정 시 사용

6. 그래프 사이즈

plt.figure 함수를 사용하여 그래프 사이즈를 조정할 수 있다.

  • plt.figure(figsize(가로, 세로))
x = np.arange(1,10)
y1 = x*5
y2 = x*1
y3 = x*0.3
y4 = x*0.2

plt.figure(figsize=(20,10))
plt.subplot(2,2,1)
plt.plot(x,y1)
plt.subplot(2,2,2)
plt.plot(x,y2)
plt.subplot(2,2,3)
plt.plot(x,y3)
plt.subplot(2,2,4)
plt.plot(x,y4)
plt.show()

7. 막대그림 (bar chart)

막대그림 외에도 파이차트, 히스토그램 등 다양한 그래프를 그릴 수 있다.

y = [4,7,3,4,1,9,8]
x = range(len(y))
plt.bar(x, y, width=0.7, color='blue')
plt.show()

8. 그래프 스타일 지정

그래프 그리는 스타일을 변경하고 싶을 때 간단하게 사용할 수 있는 방법이다.
plt.style을 활용하여 그래프 스타일을 지정할 수 있다.

  • plt.style.use('ggplot'): ggplot 스타일 설정

ggplot 스타일을 적용하여 위 그래프를 다시 그려보면 아래와 같이 회색 격자배경에 그래프가 출력된 것을 볼 수 있다.

9. subplots

plt.subplots()는 plt.subplot()과 비슷한 함수로 fig와 Axes 혹은 Axes 객체의 배열을 반환한다.

  • Axes: 그래프의 이미지, 축의 메모리, 라벨의 설정 등을 맡고 있다.
fig, axes= plt.subplots(2,2) # axes는 Axes객체의 2x2의 배열 
axes[0][0].plot([1,2,3]) 
axes[1][0].plot([4,5,4,5])

profile
22년 3월부터 본격적으로 블로그 정리 시작합니다! (준비중)

0개의 댓글