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

Matplotlib 파이 차트에 실제 값 표시하기 – autopct 람다 함수 활용법

Matplotlib 파이 차트에는 기본적으로 각 조각의 백분율(%)이 표시됩니다. 하지만 autopct 옵션에 람다(lambda) 함수를 활용하면 백분율 대신 실제 데이터 값이나 원하는 사용자 지정 값을 표시할 수 있습니다.

파이 차트에 실제 값 표시하는 단계

  • 그림 크기 설정 – figure 크기를 지정하고 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
  • 데이터 준비 – labels(레이블), fracs(데이터 값), explode(강조 위치) 리스트를 만들고, 값들의 합계를 구해 실제 값 계산에 활용합니다.
  • 파이 차트 생성 – labels, fracs, explode를 인자로 넘기고, autopct=lambda p: ... 형태의 계산식을 지정해 실제 값을 표시합니다.
  • 차트 출력show() 메서드로 완성된 그림을 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

labels = ('Read', 'Eat', 'Sleep', 'Repeat')

fracs = [5, 3, 4, 1]
total = sum(fracs)
explode = (0, 0.05, 0, 0)

plt.pie(fracs, explode=explode, labels=labels,
    autopct=lambda p: '{:.0f}%'.format(p * total / 100),
    shadow=True, startangle=90)

plt.show()

코드 설명

핵심은 바로 autopct 인자입니다. Matplotlib는 autopct에 전달된 콜백 함수에 각 조각의 백분율(p)을 자동으로 넘겨줍니다. 이 백분율에 전체 합계(total)를 곱한 뒤 100으로 나누면 원래의 실제 데이터 값이 계산됩니다. 위 예제에서는 그 결과를 '{:.0f}%'.format(...)으로 정수 형태로 포맷팅하여 차트 위에 표시합니다.

추가로 살펴볼 옵션은 다음과 같습니다.

  • explode – 특정 조각을 중심에서 약간 분리해 강조하는 옵션입니다. 위 예제에서는 두 번째 조각('Eat')을 0.05만큼 돌출시켰습니다.
  • startangle=90 – 첫 번째 조각이 12시 방향에서 시작하도록 회전 각도를 설정합니다.
  • shadow=True – 그림자 효과를 추가해 입체감을 더합니다.

실행 결과

Matplotlib 파이 차트에 실제 값 표시하기 – autopct 람다 함수 활용법

이처럼 autopct에 람다 함수만 잘 활용하면 별도의 주석 작업 없이도 파이 차트에 실제 값을 손쉽게 표시할 수 있습니다.