Matplotlib을 사용하여 Python에서 그룹 막대 차트를 생성하기 위해 제공된 코드에 오류가 있습니다. 특히 w 값이 올바르지 않으며 자동 라벨을 사용하는 주석 배치가 잘못 정렬되었습니다.
수정된 w 값:
대신 w 값은 0.8/3이어야 합니다. 막대 사이의 적절한 간격을 보장하려면 0.8을 사용하세요.
그룹화된 막대 차트를 그리는 더 간단한 접근 방식은 pandas DataFrames의 플롯 방법을 사용하는 것입니다. 이 방법을 사용하면 플로팅과 주석이 쉬워집니다.
막대 위에 주석을 정확하게 배치하려면 다음 코드를 사용하세요.
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')
여기서 오프셋은 포인트는 (0, 10)으로 설정되어 주석이 막대 중앙 바로 위에 정렬됩니다.
수정 및 개선된 코드는 다음과 같습니다.
import pandas as pd import matplotlib.pyplot as plt df = pandas.DataFrame({ 'Very interested': [1332, 1688, 429, 1340, 1263, 1629], 'Somewhat interested': [729, 444, 1081, 734, 770, 477], 'Not interested': [127, 60, 610, 102, 136, 74] }, index=['Big Data (Spark / Hadoop)', 'Data Analysis / Statistics', 'Data Journalism', 'Data Visualization', 'Deep Learning', 'Machine Learning']) colors = ['#5cb85c', '#5bc0de', '#d9534f'] fig, ax = plt.subplots(figsize=(20, 8)) ax.set_ylabel('Percentage', fontsize=14) ax.set_title( "The percentage of the respondents' interest in the different data science Area", fontsize=16) ax.set_xticklabels(ax.get_xticklabels(), rotation=0) df.plot.bar(ax=ax, color=colors) 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') plt.show()
위 내용은 Matplotlib 및 Pandas를 사용하여 올바른 간격과 정확한 주석으로 그룹화된 막대 차트를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!