Wie erstelle ich mit Matplotlib und Pandas ein gruppiertes Balkendiagramm mit korrektem Abstand und genauen Anmerkungen?

Susan Sarandon
Freigeben: 2024-11-03 12:23:29
Original
1044 Leute haben es durchsucht

How to create a grouped bar chart with correct spacing and accurate annotations using Matplotlib and Pandas?

Plotten und Kommentieren eines gruppierten Balkendiagramms

Fehleranalyse

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.

Pandas-Plot zum Plotten verwenden

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.

Verbesserte Platzierung von Anmerkungen

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')
Nach dem Login kopieren

Hier der Versatz Punkte werden auf (0, 10) gesetzt, um die Anmerkungen direkt über den Balkenmitten auszurichten.

Vollständiger Code

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()
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage