Tiny Bunny [Python] AttributeError: Rectangle.set() got an unexpected keyword argument 'autopct' - 솜님의 블로그
솜님의 블로그
카테고리
작성일
2024. 12. 6. 14:48
작성자
겨울솜사탕

오류 원인 및 내용

AttributeError: Rectangle.set() got an unexpected keyword argument 'autopct'

 

AttributeError는 속성 참조 또는 할당이 실패했을 때 발생되는 오류라고 한다.

Rectangle.set()에 잘못된 할당이 되어서 오류가 발생했는데, 잘못된 키워드는 'autopct' 이다.

 

확인해 보니 막대그래프에 %로 데이터를 보여주고 싶어서 설정했던 코드에서 발생한 오류였다.

autopct는 파이 그래프에서만 사용할 수 있는 속성이기 때문!!

 

기존 코드

ax1.bar(years, births, color='tan', width=0.5, label='출생 수', alpha=0.6, autopct='%.1f%%')

 

 

해결방안

 

y축 데이터를 %로 보여주는 것으로 수정했다.

 

import matplotlib.ticker as mtick

먼저 원하는 형식으로 데이터를 보여주기 위해 matplotlib 라이브러리의 ticker 모듈을 import 한다.

 

 

# y축을 백분율로 표시
plt.gca().yaxis.set_major_formatter(mtick.PercentFormatter(decimals=0))

plt.gca는 현재 사용 중인 axis 객체를 가지고 온다.

gca == get current axis

 

여기서 yaxis.set_major_formatter 코드는

y축의 데이터를 어떻게 표시할지를 결정한다.

그 후 ticker 모듈의 PercentFormatter (%)으로 설정하여 백분율 형식으로 변환하고,

decimals = 0 은 소수점 자리를 0으로 설정한다는 의미이다 (정수형)

 

 

수정 완료!