Matplotlib에서 그래프를 그린 후 이미 생성된 범례(legend)를 수정해야 하는 경우가 종종 있습니다. 다행히 Matplotlib는 범례 객체의 다양한 속성을 자유롭게 변경할 수 있는 여러 가지 방법을 제공합니다.
범례 수정 절차
- 그림(figure) 크기를 설정하고 서브플롯 주변과 사이의 여백을 조정합니다.
- plot() 메서드를 사용해 두 개의 리스트 데이터와 라벨(label)을 지정하여 선 그래프를 그립니다.
- legend() 메서드로 그래프 위에 범례를 배치합니다.
- 생성된 범례 객체에 대해 set_title() 메서드를 호출하여 범례 제목을 수정합니다.
- show() 메서드로 최종 그림을 화면에 표시합니다.
예제 코드
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.plot([1, 3, 4, 5, 2, 1], [3, 4, 1, 3, 0, 1],
label="line plot", color='red', lw=0.5)
leg = plt.legend(loc="upper right")
leg.set_title("Title")
plt.show()실행 결과
위 코드를 실행하면 그래프 오른쪽 상단에 범례가 표시되며, set_title() 메서드 덕분에 해당 범례 상단에 "Title"이라는 제목이 추가된 것을 확인할 수 있습니다.
추가로 알아두면 좋은 범례 수정 옵션
set_title() 외에도 범례 객체는 다음과 같은 유용한 메서드와 속성을 제공합니다.
- get_texts(): 범례 항목의 텍스트 목록을 가져와 개별 라벨을 변경할 수 있습니다.
- get_lines(): 범례에 포함된 선 객체에 접근하여 색상이나 선 스타일을 조정할 수 있습니다.
- set_visible(False): 필요할 때 범례를 화면에서 숨길 수 있습니다.
- loc 파라미터: 'upper right', 'lower left', 'center' 등 원하는 위치로 범례를 이동시킬 수 있습니다.
이처럼 범례를 변수에 저장해 두면(leg = plt.legend(...)) 생성 이후에도 언제든 속성을 자유롭게 수정할 수 있어, 시각화 결과를 세밀하게 다듬는 데 큰 도움이 됩니다.