Matplotlib에서 그림(figure)의 여백을 설정하려면 margins() 메서드를 사용할 수 있습니다. 이 메서드는 축 범위 양쪽 끝에 추가되는 여백의 비율을 지정하며, x축과 y축 각각에 대해 개별적으로 값을 설정할 수도 있습니다.
단계별 진행 과정
- 그림 크기(figure size)를 설정하고 서브플롯 사이 및 주변의 패딩을 조정합니다.
- numpy를 사용하여 t와 y 데이터 포인트를 생성합니다.
- 현재 그림의 인덱스 1 위치에 서브플롯(subplot)을 추가합니다.
- plot() 메서드로 t와 y 데이터 포인트를 그립니다.
- 플롯의 제목을 설정합니다.
- 현재 그림의 인덱스 2 위치에 서브플롯을 추가합니다.
- plot() 메서드로 t와 y 데이터 포인트를 다시 그립니다.
- 플롯의 제목을 설정합니다.
- margins(x=0, y=0)을 호출하여 플롯의 여백을 0으로 설정합니다.
- show() 메서드를 사용해 그림을 화면에 표시합니다.
예제 코드
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
t = np.linspace(-2, 2, 10)
y = np.exp(-t)
# 첫 번째 서브플롯: 기본 여백 상태
plt.subplot(121)
plt.plot(t, y)
plt.title("여백 없음")
# 두 번째 서브플롯: 여백을 0으로 설정
plt.subplot(122)
plt.plot(t, y)
plt.title("x=0, y=0 여백 적용")
plt.margins(x=0, y=0)
plt.show()출력 결과
위 코드를 실행하면 두 개의 서브플롯이 나란히 표시됩니다. 왼쪽 플롯은 기본 여백이 적용된 상태이고, 오른쪽 플롯은 margins(x=0, y=0) 덕분에 데이터가 축 경계에 딱 붙어 표시되는 것을 확인할 수 있습니다.

참고 사항
margins() 메서드는 인자를 하나만 전달하면 x축과 y축에 동일한 값이 적용됩니다. 예를 들어 plt.margins(0.1)처럼 사용할 수 있으며, 반대로 음수 값을 지정하면 데이터 일부가 잘려 보일 수 있으니 주의해야 합니다. 또한 set_xlim(), set_ylim()으로 축 범위를 직접 지정하면 margins 설정이 무시되므로, 두 기능을 함께 사용할 때는 실행 순서에 유의하는 것이 좋습니다.