Kod yang disediakan untuk mencipta carta bar berkumpulan dalam Python menggunakan Matplotlib mengandungi ralat. Khususnya, nilai w tidak betul dan peletakan anotasi menggunakan autolabel tidak sejajar.
Nilai w Dibetulkan:
Nilai w sepatutnya 0.8 / 3 sebaliknya sebanyak 0.8 untuk memastikan jarak yang betul antara bar.
Pendekatan yang lebih mudah untuk memplot carta bar berkumpulan ialah menggunakan kaedah plot panda DataFrames. Kaedah ini membolehkan plot dan anotasi yang mudah.
Untuk meletakkan anotasi dengan tepat di atas bar, gunakan kod berikut:
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')
Di sini, offset mata ditetapkan kepada (0, 10) untuk menjajarkan anotasi terus di atas pusat bar.
Kod yang diperbetulkan dan dipertingkatkan adalah seperti berikut:
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()
Atas ialah kandungan terperinci Bagaimana untuk mencipta carta bar berkumpulan dengan jarak yang betul dan anotasi yang tepat menggunakan Matplotlib dan Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!