본문 바로가기
공부 목록/IT & 프로그래밍

Python Matplotlib 그래프 - 축 레이블 폰트와 오프셋 설정

by 독학박사 2023. 7. 14.

목차


    파이썬에서 matplotlib을 이용하여 그래프를 그릴 때 plt.plot()을 사용합니다. 이 함수만 사용하게 되면 x축과 y축은 자동으로 세팅되고 그래프만 나타나게 됩니다. 그래프를 꾸며주기 위해 여러 가지 함수들이 존재하는데 오늘은 x축과 y축의 라벨을 나타나게 하는 xlabel()과 ylabel()에 대해 정리해 보겠습니다.

     

     

    그래프 라벨 설정
    그래프 라벨 설정

     

    1. xlabel() / ylabel() 함수 없이 그래프 그릴 경우

     아래의 코드는 xlabel()이나 ylabel()을 사용하지 않고 단순히 plt.plot()만 사용했을 때의 결과물입니다.

     

    import matplotlib.pyplot as plt
    
    # 데이터 생성
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    # 그래프 그리기
    plt.plot(x, y)
    
    # 그래프 보여주기
    plt.show()

     

    plt.plot()만 사용한 그래프
    plt.plot()만 사용한 그래프

     

     

     데이터를 그래프로만 나타냈기 때문에 직선 하나만 보입니다. 이렇게 그래프를 그리면 x축은 어떤 값이고 y축은 무엇을 나타내는지 전혀 알 수 없습니다. 그래프를 나타내는 목적은 데이터를 분석하는 목적도 있지만 다른 사람들에게 데이터를 쉽게 설명하기 위함도 있는데 이런 그래프의 경우에는 어떠한 설명도 되지 않습니다.

     

     

    2. xlabel()과 ylabel() 이란

     두 개의 함수는 같은 방법으로 사용하는 것으로 앞으로의 설명은 xlabel()만 설명을 하도록 하겠습니다. xlabel()은 plt.plot()으로 그린 그래프의 x축에 문자열을 표기하는 함수입니다. 문자열을 표기한다는 것은 x축에 대한 설명을 넣는 것으로 x축이 무엇을 나타내는 값이라고 말하는 것과 같습니다.

     

    xlabel()의 기본 사용법은 다음과 같습니다.

     

    plt.xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)

     

    xlabel:
    x축에 표시할 레이블 문자열입니다.

    fontdict (선택적):
    텍스트에 적용할 딕셔너리 형태의 폰트 속성으로 {'fontsize': 12, 'fontweight': 'bold'}와 같은 형태로 지정할 수 있습니다.

    labelpad (선택적):
    레이블과 그래프 사이의 간격을 지정할 수 있습니다. 기본값은 None이며, 이 경우 Matplotlib이 적절한 간격을 자동으로 선택합니다.

    **kwargs: 기타 키워드 인수입니다. 다양한 속성 및 스타일을 지정하는 데 사용될 수 있습니다.
    기타 키워드 인수는 color, fontsisze, fontweight, rotation, ha, va, backgroundcolor, alpha들이 있습니다.

     

     

    3. xlabel() 사용 예제

     라벨을 사용하기 전의 그래프는 위에서 보여드렸습니다. 이제 각 인자를 조정해 가며 라벨이 어떻게 변화되는지 확인해 보겠습니다. 위의 기본 그래프에 라벨을 붙이는 코드는 생략하고 바로 폰트 변경에 대한 확인을 하겠습니다. 아래 코드는 font를 사전형으로 미리 정의한 형태입니다. 이렇게 미리 정의를 해 놓으면 많은 곳에 활용할 수 있습니다.

     

    import matplotlib.pyplot as plt
    
    # 데이터 생성
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    
    # 그래프 그리기
    plt.plot(x, y)
    
    # 레이블 추가
    plt.xlabel("X-axis")
    plt.ylabel("Y-axis")
    
    # 폰트 속성과 간격 설정
    font = {'family': 'serif',
            'color': 'darkred',
            'weight': 'bold',
            'size': 14}
    
    plt.xlabel("X-axis (with fontdict)", fontdict=font, labelpad=10)
    plt.ylabel("Y-axis (with fontdict)", fontdict=font, labelpad=10)
    
    # 그래프 보여주기
    plt.show()

     

    xlabel과 ylabel의 인자값을 입력한 결과물
    xlabel과 ylabel의 인자값을 입력한 결과물

     

     

     

    폰트의 경우 인터넷에도 무료로 많이 다운받을 수 있는데 가능하면 가시성이 좋은 폰트를 사용하시길 권장드립니다. 사실 라벨의 설정에서는 폰트의 종류, 크기, 색상 이외의 것을 만지는 일이 거의 없습니다. 위의 예제 코드만 잘 활용해도 그래프 그리는 데는 충분할 것으로 판단됩니다.

     

     

     

    4. 마치며

     python에서 matplotlib의 pyplot 함수 plot()으로 데이터를 가시화할 때 별도의 설정이 없으면 그래프를 제대로 활용하기 어렵습니다. 이를 위해 matplotlib에서는 그래프를 설정할 수 있는 함수들을 제공하는데 그중에서 x축과 y축의 라벨(이름)을 생성하는 plt.xlabel()에 대해 알아보았습니다. 데이터 가시화를 위한 그래프를 그릴 때는 꼭 xlabel과 ylabel를 나타내어 그래프를 이해할 수 있도록 해야 합니다.