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

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

Susan Sarandon
Susan Sarandon원래의
2024-11-19 07:06:02351검색

How to Perfectly Center Data Labels in Stacked Bar Charts Using Python?

누적 막대 차트에서 데이터 레이블 중앙에 배치

누적 막대 차트를 생성할 때 데이터 레이블이 차트의 각 섹션 내에서 올바르게 중앙에 위치하는지 확인하는 것이 어려울 수 있습니다. 술집. 이 문제는 막대 높이, 막대 사이의 간격, 레이블의 글꼴 크기 등 다양한 이유로 인해 발생할 수 있습니다.

Pandas 및 Matplotlib.pyplot 사용

이 문제에 대한 강력하고 간결한 접근 방식에는 Pandas 및 Matplotlib.pyplot을 사용하는 것이 포함됩니다. Pandas는 데이터를 표현하고 조작하는 편리한 방법을 제공하는 반면, Matplotlib.pyplot은 시각화 생성을 위한 강력한 도구 세트를 제공합니다. 이 접근 방식을 사용하여 누적 막대 차트에서 데이터 레이블을 중앙에 배치하는 방법은 다음과 같습니다.

  1. 표시하려는 데이터로 Pandas DataFrame을 만듭니다.
  2. .plot(stacked =True, kind='bar') 메서드를 사용하여 누적 막대 차트를 생성합니다.
  3. for c in ax.containers:를 사용하여 플롯 내의 컨테이너를 반복합니다.
  4. fmt=lambda x 사용 : x >인 경우 f'{x:.0f}' 0 else ''를 사용하면 소수 자릿수를 제거하고 0이 아닌 값만 표시하여 레이블 형식을 맞춤 설정할 수 있습니다.
  5. ax.bar_label(c, fmt=fmt)를 호출하여 막대의 각 섹션 내에서 데이터 레이블을 중앙에 배치합니다.

Seaborn 사용

Matplotlib을 기반으로 구축된 고급 API인 Seaborn은 누적 막대 차트를 생성하는 대체 방법을 제공합니다. Seaborn은 스택을 직접 지원하지 않지만 sns.histplot 또는 sns.displot을 사용하여 스택 플롯을 생성하는 옵션을 제공합니다.

sns.displot을 사용하는 그림 수준 플롯의 경우 축을 반복한 다음 컨테이너를 통해 반복합니다. 각 축 내에서. 각 컨테이너에 대해 ax.bar_label(c, fmt=fmt)을 사용하여 데이터 레이블을 중앙에 배치합니다.

패치를 사용한 원래 방법

Matplotlib.patches.Rectangle 객체와 직접 작동하는 방법은 다음과 같습니다. 누적 막대의 각 섹션의 값과 위치를 추출하는 데 사용됩니다. 이 방법에는 다음이 포함됩니다.

  1. .patches 속성을 사용하여 패치 목록에 액세스합니다.
  2. 패치를 반복하고 높이, 너비, x 좌표 및 y 좌표를 추출합니다.
  3. 각 섹션의 중심점을 계산하여 그에 맞게 라벨을 배치합니다.
  4. 필요에 따라 라벨 텍스트를 맞춤설정합니다.

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

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