[matplotlib]여러개로 나누어서 그래프 출력(subplot)

반응형
반응형

matplotlib를 이용해 여러개의 그래프로 나오게 하겠습니다.

subplot을 이용하면 가능한데 먼저 예제를 통해 설명하겠습니다.

 

import matplotlib.pyplot as plt
import numpy as np
y = np.random.standard_normal((10,2))
y

 

2차원 데이터입니다. 2차원 데이터는 그래프가 column별로 나눠지므로 2개의 그래프가 나타나게 됩니다.

이 그래프를 한곳에 넣지 말고 각각 나눠서 넣기 위해 subplot을 사용합니다.

 

plt.subplot(211)
plt.plot(y[:,0],label='1column')
plt.plot(y[:,0],'ro')
plt.legend(loc=0)
plt.subplot(212)
plt.plot(y[:,1],label='2column')
plt.plot(y[:,1],'ro')
plt.legend(loc=0)

그래프를 두개로 나눠서 그렸습니다. 

subplot 괄호에 있는 숫자의 의미는 다음과 같습니다.

  • numrows : rows의 갯수
  • numcols : columns의 갯수
  • fignum : subplot의 갯수(1부터 시작해 numrows*numcols으로 끝남)

만약에 numrows=3, numcols=2, fignum=1,2...,6 이고 맨 아래의 오른쪽에 위치하고 싶다면,

plt.subplot(336)을 입력하시면 됩니다.

 

subplot을 사용하면 좋은게 하나로 같은 자료를 다른 그래프로 출력할 수 있습니다.

같은 자료를 가지고 다양한 그래프로 나타나게 할 수 있습니다. 

 

plt.figure(figsize=(10,6))
plt.subplot(121)
plt.plot(y[:,0],label='1column')
plt.plot(y[:,0],'ro')
plt.legend(loc=0)
plt.subplot(122)
plt.bar(np.arange(len(y)),y[:,0],width=0.5,color='black',label='2column')
plt.legend(loc=0)

 

 

그래프 모양마다 장단점이 있기 때문에 여러 그래프로 표현하면 효율적으로 분석을 할 수 있어서 

subplot을 이용하면 한눈에 볼 수 있는 장점이 있어 유용합니다.

 

관련포스팅

[Python/matplotlib]n차원 데이터 그리기

[Python/matplotlib] - [matplotlib]plt 라벨(label) 위치설정

[Python/Numpy] - ndarray 랜덤한값 생성

파이썬 matplotlib 그래프 축 없애기

데이터목장님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY