[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

    ....