파이썬 matplotlib 그래프 축 없애기

반응형
    반응형

    matplotlib로 그린 그래프 축 없애는 방법입니다.
    그래프를 보기 좋게 만들기 위해서 축을 없애거나 축 범위만 없애고 싶으면 다음과 같이 합니다.

    x,y는 0~10 숫자로 구성하였습니다.

    x = np.linspace(0,9,11)
    y = [2*i for i in x]

     

    축 범위 없애기

    x,y 축의 범위만 없애고 싶다면 gca().axes.axis.set_visible(False) 를 수행합니다.
    x축을 없애고 싶으면 xaxis를 y축을 없애고 싶음면 yaxis를 입력합니다.

    # x범위 없애기
    plt.subplot(1,2,1)
    plt.plot(x,y)
    plt.gca().axes.xaxis.set_visible(False)#x범위 없애기
    plt.title('x-axis del')
    
    # y 범위 없애기
    plt.subplot(1,2,2)
    plt.plot(x,y)
    plt.gca().axes.yaxis.set_visible(False)#y범위 없애기
    plt.title('y-axis del')

    x축,y축 범위 지우기

    x,y축 둘다 없애고 싶으면 xaxis,yaxis 모두 작성합니다.

    plt.plot(x,y)
    plt.gca().axes.xaxis.set_visible(False)
    plt.gca().axes.yaxis.set_visible(False)
    plt.title('x-axis,y-axis del')
    plt.show()

    x,y 축 범위 모두 지우기

    레이아웃 없애기

    레이아웃을 없애려면 plt.axis('off')를 입력합니다.

    #축 자체를 없애기
    plt.plot(x,y)
    plt.axis('off') 
    plt.title('layout del')
    plt.show()

    그래프 레이아웃 없애기

    일부 레이아웃만 없애기

    plt.gca().spines[라벨].set_visible(False)로 레이아웃 일부만 없앨 수 있습니다.
    spines의 대괄호에 들어갈 수 있는 라벨은 ['right','left','top','bottom']입니다.
    리스트로 받아들여서 한꺼번에 다 되면 좋겠지만 한개씩만 적용됩니다. 여러가지를 하려면 일일히 입력해야 하는 번거로움이 있습니다.

    plt.plot(x,y)
    plt.gca().spines['top'].set_visible(False)
    plt.gca().spines['right'].set_visible(False)
    plt.title('part of layout del')
    plt.show()

    마치며

    마지막으로 한번에 보이게 정리하고 마칩니다.

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0,9,11)
    
    y = [2*i for i in x]
    plt.subplots(figsize=(15,3))
    
    plt.subplot(1,5,1)
    plt.plot(x,y)
    plt.title('Default')
    plt.subplot(1,5,2)
    plt.plot(x,y)
    plt.gca().axes.xaxis.set_visible(False)#x범위 없애기
    plt.title('x-axis del')
    plt.subplot(1,5,3)
    plt.plot(x,y)
    plt.gca().axes.yaxis.set_visible(False) #y범위 없애기
    plt.title('y-axis del')
    plt.subplot(1,5,4)
    plt.plot(x,y)   # 축 범위만 없애기
    plt.gca().axes.xaxis.set_visible(False)
    plt.gca().axes.yaxis.set_visible(False)
    plt.title('x-axis,y-axis del')
    plt.subplot(1,5,5)
    plt.plot(x,y)
    plt.axis('off') #축 자체를 없애기
    plt.title('layout del')
    plt.show()

    레이아웃, 범위 없애기

     

    관련 포스팅

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

    ndarray 데이터로 그래프 그리기(matplotlib)

    ndarray 생성하기

     

    댓글

    Designed by JB FACTORY

    ....