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

Pandas로 그래프 밖에 범례 배치하는 방법 (bbox_to_anchor 활용)


Pandas와 Matplotlib으로 그래프를 그리면 범례(legend)가 기본적으로 플롯 영역 안쪽에 표시되어 데이터와 겹칠 수 있습니다. 이럴 때 bbox_to_anchor 옵션을 활용하면 범례를 그래프 바깥쪽으로 자유롭게 이동할 수 있습니다. 아래 단계를 따라 해 보세요.

  • 딕셔너리 생성 — 'Column 1'과 'Column 2'라는 두 개의 키를 가진 딕셔너리 d를 만듭니다.

  • 데이터프레임 변환 — DataFrame(d)을 호출해 딕셔너리를 Pandas 데이터프레임으로 변환합니다.

  • 그래프 그리기 — df.plot()에 스타일 리스트(['o', 'rx'])를 전달해 각 열을 서로 다른 마커 스타일로 시각화합니다.

  • 범례 위치 지정 — legend() 함수로 범례를 추가하고, bbox_to_anchor 키워드 인자에 원하는 좌표를 지정합니다. 이 값은 범례의 기준점(앵커)을 나타내며, (1.0, 1.0)처럼 축 경계 밖의 좌표를 지정하면 범례가 그래프 영역 밖으로 배치됩니다.

  • 그래프 출력 — show() 메서드를 호출해 최종 그래프를 화면에 표시합니다.

bbox_to_anchor 이해하기

bbox_to_anchor는 (x, y) 형태의 좌표를 받으며, loc 인자와 함께 사용하면 더욱 세밀한 위치 조정이 가능합니다. 예를 들어 plt.legend(loc='upper left', bbox_to_anchor=(1.0, 1.0))처럼 작성하면 범례의 왼쪽 상단이 축의 오른쪽 상단 모서리에 정렬되어 그래프 완전히 바깥쪽에 놓이게 됩니다. 또한 figure.autolayout = True 설정을 함께 사용하면 범례가 잘리지 않도록 레이아웃이 자동으로 조절됩니다.

예제 코드

import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
d = {'Column 1': [i for i in range(10)],
     'Column 2': [i * i for i in range(10)]}
df = pd.DataFrame(d)
df.plot(style=['o', 'rx'])
plt.legend(bbox_to_anchor=(1.0, 1.0))
plt.show()

실행 결과

Pandas로 그래프 밖에 범례 배치하는 방법 (bbox_to_anchor 활용)