Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib 그래프에서 축 눈금 레이블은 유지한 채 프레임(테두리) 제거하는 방법

Matplotlib으로 그래프를 그릴 때, 축의 눈금 레이블(tick label)은 그대로 두고 외곽 프레임(spine, 테두리 선)만 제거하고 싶은 경우가 있습니다. 예를 들어 미니멀한 스타일의 차트를 만들 때 유용합니다. 아래 단계를 따라 하면 손쉽게 구현할 수 있습니다.

구현 단계

  • 그림 크기를 설정하고 서브플롯 주변의 여백(padding)을 조정합니다.
  • y축 데이터 포인트 목록을 생성합니다.
  • plot() 메서드를 사용해 y 데이터를 그래프로 그립니다.
  • 왼쪽, 오른쪽, 위, 아래의 spine(테두리 선)을 제거하기 위해 set_visible() 메서드를 사용합니다.
  • show() 메서드로 그림을 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

y = [0, 2, 1, 5, 1, 2, 0]

plt.plot(y, color='red', lw=7)

for pos in ['right', 'top', 'bottom', 'left']:
    plt.gca().spines[pos].set_visible(False)

plt.show()

코드 설명

핵심은 spines 딕셔너리입니다. Matplotlib에서 그래프의 테두리는 네 개의 spine('left', 'right', 'top', 'bottom')으로 구성되어 있으며, 각각의 set_visible(False)를 호출하면 해당 테두리만 숨겨집니다. 이때 축 눈금과 레이블에는 영향을 주지 않으므로, 데이터 값 확인에는 지장이 없습니다.

또한 plt.rcParams["figure.autolayout"] = True 설정을 사용하면 레이블이 잘리지 않도록 여백이 자동으로 조절되어 편리합니다.

실행 결과

Matplotlib 그래프에서 축 눈금 레이블은 유지한 채 프레임(테두리) 제거하는 방법

위 코드를 실행하면 빨간색 선 그래프가 표시되며, 사방의 테두리 프레임은 모두 제거되고 x축·y축의 눈금 레이블만 남아 있는 깔끔한 결과를 확인할 수 있습니다.