프로그래밍 언어/Python

제목, 레이블, 범례 추가하기

· 코딩마이데이

seaborn 패키지를 사용하여 전체적인 디자인 스타일을 지정하고, 폰트를 설정해 보겠습니다. 또한 차트 제목과 분류별 누적 금액을 출력하여 한눈에 다양한 정보를 파악할 수 있도록 만들어 봅시다.

새로운 파일을 생성하고 파일명을 'step_4_3.py'로 변경하세요. 다음과 같이 코드를 입력하고, 대화형 창에서 실행하면 자세한 정보가 표시된 파이 차트를 볼 수 있습니다.

from pathlib import Path
import matplotlib.pyplot as plt
import seaborn as sns
from step_1 import OUT_DIR # 이전에 작성한 모듈을 불러옵니다.
from step_4_2 import load_data

def custom_autopct(pct, total):
    real_val = int(pct / 100 * total)
    return f"{real_val:,}원\n({pct:.1f}%)"

df_raw = load_data()
labels, values = df_raw["분류"], df_raw["누적금액"]

sns.set_theme(context="poster", font="Malgun Gothic") # 14
fig, ax = plt.subplots(figsize=(16, 9), dpi=100)
ax.pie(
    values,
    textprops=dict(color="white", size=20),
    startangle=90,
    autopct=lambda pct: custom_autopct(pct, sum(values)), # 20
)
ax.legend(labels, loc="center left", bbox_to_anchor=(1, 0.5)) # 22
ax.set_title(f"1분기에는 {labels[0]}에 {values[0]:,}원을 사용했습니다.") # 23
fig.suptitle("1분기 카드 사용 내역") # 24
fig.savefig(OUT_DIR / f"{Path(__file__).stem}.png", bbox_inches="tight")

 

[실행결과]

 

07 개별 항목의 실체 데이터와 비율 값을 반환하는 함수 custom_autopct()를 정의합니다. 매개변수 pct는 개별 항목의 비율을, total은 전체 합계를 의미합니다.

14 함수 set_theme()를 사용하여 차트의 크기와 폰트를 설정합니다.

20 함수 lambda()와 custom_autopct()를 사용하여 실제 데이터와 비율 겂을 함께 출력합니다.

22 함수 legend()를 사용하여 차트의 범례를 출력합니다. 매개변수 bbox_to_anchor에 (1, 0.5)를 전달하여 차트의 X축 오른쪽, Y쪽 중간 지점을 범례 출력의 기준점으로 설정하고, loc 'center left'를 전달하여 범례의 왼쪽 중간을 기준점에 맞춥니다.

23 함수 set_title()를 사용하여 차트의 소제목을 설정합니다. 이때 변수 labels와 values의 첫 번째 값을 불러와 가장 많이 사용한 분류와 누적 금액을 출력합니다.

24 함수 suptitle()를 사용하여 차트의 제목을 설정합니다.

 

'프로그래밍 언어 > Python' 카테고리의 다른 글

이미지 처리 기본 익히기  (0) 2025.11.17
이미지 불러오기  (0) 2025.11.14
분류별 누적금액 시각화하기  (0) 2025.11.08
분류별 누적 지출 합계 구하기  (0) 2025.11.05
집계 기준 추가하기  (0) 2025.11.02