Matplotlib에서 범례(legend) 내 텍스트의 정렬을 조정하려면 다음 단계를 따르면 됩니다.
구현 단계
- 그림 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
- NumPy를 사용하여 x 데이터 포인트를 생성합니다.
- plot() 메서드를 사용해 x, sin(x), cos(x) 그래프를 그립니다.
- legend() 메서드로 범례를 배치하고 객체를 변수에 저장합니다.
- legend.get_texts() 메서드를 반복(iterate)하면서 각 텍스트 항목에 가로 정렬(horizontal alignment)을 설정합니다.
- show() 메서드를 사용하여 그림을 화면에 표시합니다.
예제 코드
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(-5, 5, 100)
plt.plot(x, np.sin(x), label="$y=sin(x)$")
plt.plot(x, np.cos(x), label="$y=cos(x)$")
legend = plt.legend(loc='upper right')
for t in legend.get_texts():
t.set_ha('left')
plt.show()코드 설명
위 코드에서 핵심은 legend.get_texts()입니다. 이 메서드는 범례에 포함된 텍스트 객체들의 리스트를 반환하며, 각 텍스트 객체에 대해 set_ha('left')를 호출하면 해당 레이블이 왼쪽 정렬됩니다. 'right' 또는 'center' 값을 사용하면 정렬 방식을 자유롭게 변경할 수 있습니다.
실행 결과

그림을 실행하면 오른쪽 상단에 위치한 범례의 텍스트가 왼쪽으로 정렬되어 표시되는 것을 확인할 수 있습니다.