>  기사  >  백엔드 개발  >  Matplotlib를 사용하여 그룹화된 막대 차트에서 막대를 올바르게 정렬하고 주석을 추가하는 방법은 무엇입니까?

Matplotlib를 사용하여 그룹화된 막대 차트에서 막대를 올바르게 정렬하고 주석을 추가하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 14:57:03651검색

How to Correctly Align Bars and Add Annotations in a Grouped Bar Chart with Matplotlib?

그룹화된 막대 차트 그리기 및 주석 달기

이 가이드는 그룹화된 막대 차트를 생성할 때 matplotlib에서 흔히 발생하는 문제를 다룹니다. 제공된 코드는 응답자의 관심 수준(매우 관심 있음, 약간 관심 있음, 관심 없음)을 나타내는 막대를 통해 다양한 데이터 과학 분야에 대한 응답자의 관심을 시각화하는 것을 목표로 합니다.

문제 분석

제공된 코드의 문제는 막대 너비 계산에 있습니다. 코드는 플롯의 막대 수를 고려하지 않고 w=0.8을 설정합니다. 막대를 올바르게 정렬하려면 w를 막대 수로 나누어야 합니다.

해결 방법

이 문제를 해결하려면 막대 수를 고려하도록 막대 너비 계산을 조정하세요. 플롯의 막대. 보다 효율적인 접근 방식은 pandas.DataFrame.plot 메서드를 사용하여 주석이 포함된 플롯을 생성하는 것입니다.

DataFrame.plot을 사용하여 업데이트된 코드

<code class="python">import pandas as pd
import matplotlib.pyplot as plt

# Create the DataFrame
file = "https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DV0101EN/labs/coursera/Topic_Survey_Assignment.csv"
df = pd.read_csv(file, index_col=0)

# Calculate percentages
df = df.div(2233)

# Plot the grouped bar chart
ax = df.plot.bar(color=['#5cb85c', '#5bc0de', '#d9534f'], figsize=(20, 8), rot=0, ylabel='Percentage', title="The percentage of the respondents' interest in the different data science Area")

# Add annotations
for p in ax.patches:
    ax.annotate(f'{p.get_height():0.2f}', (p.get_x() + p.get_width() / 2., p.get_height()), ha='center', va='center', xytext=(0, 10), textcoords='offset points')</code>

출력:

[수정된 막대 차트 이미지]

이 업데이트된 코드는 각 막대의 백분율을 나타내는 주석과 함께 올바르게 정렬된 그룹 막대 차트를 생성합니다.

위 내용은 Matplotlib를 사용하여 그룹화된 막대 차트에서 막대를 올바르게 정렬하고 주석을 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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