>백엔드 개발 >파이썬 튜토리얼 >누적 막대 차트에서 데이터 레이블을 중앙에 배치하는 방법은 무엇입니까?

누적 막대 차트에서 데이터 레이블을 중앙에 배치하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-16 10:20:03895검색

How to Center Data Labels in Stacked Bar Charts?

중앙에 레이블이 있는 누적 막대 차트

문제:
누적 막대에서 데이터 레이블을 중앙에 맞추려고 시도 레이블을 중앙에 맞추는 것만으로는 완벽하지 않을 수 있으므로 차트가 어려울 수 있습니다. 결과.

해결책 1: bar_label()을 사용한 Pandas Bar Plot

  • pandas.DataFrame.plot.bar() 또는 pandas.DataFrame.plot 활용 (kind='bar', stacked=True) 방법을 사용하세요.
  • matplotlib.pyplot.bar_label() 함수를 사용하여 막대의 레이블을 자동으로 가운데에 배치합니다.

해결책 2: 직사각형 속성을 사용한 명시적 레이블 지정

  • 액세스 다음을 사용하여 각 섹션에 대한 matplotlib.patches.Rectangle 객체 ax.patches.
  • 각 직사각형의 높이, 너비, x 좌표, y 좌표를 계산합니다.
  • 원하는 경우 추가 텍스트를 포함하여 f-문자열을 사용하여 라벨을 만듭니다.
  • ax.text()를 사용하여 라벨을 플롯하고 해당 라벨의 중앙에 정렬합니다. 직사각형.

해결책 3: Seaborn Histplot

  • pandas.melt()를 사용하여 데이터 프레임을 긴 형식으로 변환합니다.
  • 매개변수와 함께 seaborn.histplot() 또는 seaborn.displot()을 사용하여 플롯합니다. multiple='stack' 및 Discrete=True.
  • ax.containers를 사용하여 패치에 액세스하고 솔루션 2와 같이 라벨 생성 및 배치를 진행합니다.

솔루션 참고 사항:

  • ax.bar_label(c, labels=labels, label_type='center'), 여기서 labels는 각 직사각형에 해당하는 레이블 목록입니다.
  • 소수점 없이 숫자를 표시하려면 fmt=lambda x: f'{x:.0f}'를 사용하세요. 솔루션 1.
  • 수평 누적 막대의 경우 pandas.plot()에서 kind='barh'를 사용하고 레이블 계산을 수정합니다. 따라서

위 내용은 누적 막대 차트에서 데이터 레이블을 중앙에 배치하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.