인프런 커뮤니티 질문&답변

qud902님의 프로필 이미지
qud902

작성한 질문수

파이썬 차트 x축 단위 변환

작성

·

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.tickerFuncFormatter를 사용하는 것을 추천드립니다.

아래는 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 같은 형태로 보여주게 됩니다. 해당 예제를 참고하여 원하시는 대로 차트를 조정해 보시기 바랍니다.

qud902님의 프로필 이미지
qud902

작성한 질문수

질문하기