Heim > Artikel > Backend-Entwicklung > Wie erstelle ich mit Matplotlib und Pandas ein gruppiertes Balkendiagramm mit korrektem Abstand und genauen Anmerkungen?
Der bereitgestellte Code zum Erstellen eines gruppierten Balkendiagramms in Python mit Matplotlib enthält Fehler. Insbesondere ist der Wert von w falsch und die Platzierungen der Anmerkungen mithilfe der automatischen Beschriftung sind falsch ausgerichtet.
Korrigierter w-Wert:
Der Wert von w sollte stattdessen 0,8 / 3 sein von 0,8, um den richtigen Abstand zwischen den Balken sicherzustellen.
Ein einfacherer Ansatz zum Plotten eines gruppierten Balkendiagramms ist die Verwendung der Plotmethode von Pandas DataFrames. Diese Methode ermöglicht ein einfaches Plotten und Kommentieren.
Um Anmerkungen genau über den Balken zu platzieren, verwenden Sie den folgenden Code:
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')
Hier der Versatz Punkte werden auf (0, 10) gesetzt, um die Anmerkungen direkt über den Balkenmitten auszurichten.
Der korrigierte und verbesserte Code lautet wie folgt:
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()
Das obige ist der detaillierte Inhalt vonWie erstelle ich mit Matplotlib und Pandas ein gruppiertes Balkendiagramm mit korrektem Abstand und genauen Anmerkungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!