오류 원인 및 내용
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으로 설정한다는 의미이다 (정수형)
수정 완료!