작성
·
375
·
수정됨
0
미니 프로젝트를 진행하고 있는데 다음과 같이 x축의 단위들이 저렇게 나옵니다.
변경하려고 하였는데도 잘 안되는데요 .. 어떤 코드를 추가하거나 수정 해야될지 질문 드립니다 ..
카테고리별 결제 금액 계산
category_amount = df_sorted.groupby(['월', '카테고리'])['비용'].sum().unstack()
# 누적 가로 막대 그래프 그리기
plt.figure(figsize=(20, 10)) # 그래프 크기 조정
category_amount.cumsum(axis=1).plot(kind='barh', stacked=True)
# y축 월 컬럼의 순서를 역순으로 변경
plt.gca().invert_yaxis()
plt.title('월별 카테고리별 누적 소비 금액', fontsize=15, fontweight='bold')
plt.ylabel('월')
plt.xlabel('누적 소비 금액')
plt.legend(title='카테고리', bbox_to_anchor=(1, 1))
plt.show()
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
qud902님, 차트의 x축 단위를 변경하고 싶으시군요. x축이 과학적 표기법으로 나타나는 경우, 간단히 x축의 포맷을 변경함으로써 해결할 수 있습니다. 여러 방법 중 하나로 matplotlib.ticker
의 FuncFormatter
를 사용하는 것을 추천드립니다.
아래는 x축의 라벨을 백만 단위로 표시하기 위한 예제 코드입니다. 코드에 추가하셔서 사용해 보시기 바랍니다.
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
# 기존 코드...
plt.figure(figsize=(20, 10)) # 그래프 크기 조정
category_amount.cumsum(axis=1).plot(kind='barh', stacked=True)
plt.gca().invert_yaxis()
# x축 단위를 백만 단위로 변경
def millions_formatter(x, pos):
return '%1.1fM' % (x * 1e-6)
plt.gca().xaxis.set_major_formatter(ticker.FuncFormatter(millions_formatter))
plt.title('월별 카테고리별 누적 소비 금액', fontsize=15, fontweight='bold')
plt.ylabel('월')
plt.xlabel('누적 소비 금액')
plt.legend(title='카테고리', bbox_to_anchor=(1, 1))
plt.show()
이 코드는 x축의 값을 백만(M) 단위로 표시해줍니다. 차트에 나타난 1e6
은 1,000,000을 의미하므로, 이를 1.0M
같은 형태로 보여주게 됩니다. 해당 예제를 참고하여 원하시는 대로 차트를 조정해 보시기 바랍니다.