Kurs
Python Bar Plot: Beherrsche grundlegende und fortgeschrittene Techniken
In diesem Artikel zeige ich dir, wie du mit den bekanntesten Bibliotheken - Matplotlib, Seaborn, Plotly, Plotnine und Pandas - Balkendiagramme in Python erstellen kannst. Du kannst dir die Bilder ansehen und auswählen, welche Bibliothek dir am besten gefällt. Für jede Methode beginne ich mit den Grundlagen der Erstellung einfacher Balkendiagramme und gehe dann schrittweise zu den Anpassungsmethoden über.
Ich werde mich so umfassend und klar wie möglich ausdrücken, aber denk daran, dass in der Datenanalyse und Datenwissenschaft Balkendiagramme nur eine Sache sind. Um einen umfassenden Einblick zu bekommen, mit echten Datensätzen zu üben, eine begehrte Zertifizierung zu erhalten und eine Karriere in diesem Bereich zu starten, melde dich noch heute für unseren Lernpfad zum Associate Data Scientist in Python an.
Python von Grund auf lernen
Wege zur Erstellung eines Python-Balkenplots
Sehen wir uns an, wie du mit einigen der beliebtesten Python-Bibliotheken Balkendiagramme erstellst und anpasst. Jede Bibliothek bietet einzigartige Funktionen und verschiedene Stufen der Anpassung.
Erstelle ein Balkendiagramm mit Matplotlib
Ich beginne mit Matplotlib, einer grundlegenden Plot-Bibliothek in Python, die viele Anpassungsmöglichkeiten bietet.
Grundlegende Balkendiagramme
Um mit Matplotlib loszulegen, musst du die notwendigen Bibliotheken importieren. Das pyplot
Modul von Matplotlib bietet die Funktions zum Erstellen von Plots. In diesem Beispiel werden wir einige Beispieldaten verwenden, die zeigen, wie viele Menschen verschiedene Visualisierungsbibliotheken bevorzugen. Hier enthält die Liste library
die Namen der Bibliotheken, die als Beschriftungen auf der x-Achse erscheinen, und die Liste chosen_by
enthält die entsprechende Anzahl von Enthusiasten, die als Balkenhöhen auf der y-Achse angezeigt werden.
import matplotlib.pyplot as plt
# Number of preferences for different libraries
library = ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine']
chosen_by = [2500, 1800, 3000, 2200]
Um ein vertikales Balkendiagramm zu erstellen, musst du die Funktion plt.bar()
mit den Bibliotheksnamen und den Präferenzdaten aufrufen. Ich wähle die Farbe als skyblue
. Die Funktionen plt.xlabel()
, plt.ylabel()
und plt.title()
fügen Beschriftungen für die x- und y-Achse hinzu und setzen einen Titel für die Darstellung. Zum Schluss zeigt plt.show()
das Diagramm an.
# Vertical Bar Plot
plt.bar(library, chosen_by, color='skyblue')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
plt.show()
Auf ähnliche Weise kannst du mit der Funktion plt.barh()
ein horizontales Balkendiagramm erstellen. Hierfür verwende ich eine hellgrüne Farbe für die Balken.
# Horizontal Bar Plot
plt.barh(library, chosen_by, color='lightgreen')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
plt.show()
Erweiterte Anpassungen
Matplotlib ermöglicht eine Vielzahl von Anpassungen, wie das Hinzufügen von Anmerkungen und das Anpassen von Achsenbeschriftungen, Titeln und Legenden. Du kannst zum Beispiel mit der Funktion plt.text()
Anmerkungen zu jedem Balken hinzufügen, indem du den Text an den angegebenen Koordinaten platzierst.
plt.bar(library, chosen_by, color='skyblue')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
# Adding annotations
for i, value in enumerate(chosen_by):
plt.text(i, value + 5, str(value), ha='center')
plt.show()
Im obigen Code wird plt.text()
verwendet, um die Anzahl der Enthusiasten über jedem Balken anzuzeigen. Die Funktion enumerate()
liefert den Index und den Wert jedes Balkens, damit der Text richtig positioniert ist.
Gruppierte und gestapelte Balkendiagramme
Um mit Matplotlib gruppierte und gestapelte Balkendiagramme zu erstellen, kannst du zusätzliche Parameter verwenden, um mehrere Kategorien darzustellen, z. B. verschiedene Regionen oder demografische Merkmale. Angenommen, du hast Daten über die Beliebtheit von Visualisierungsbibliotheken in verschiedenen Regionen. Für gruppierte Balkendiagramme definierst du separate Datensätze für jede Region und verwendest bar_width
, um den Abstand und die Ausrichtung der Balken zu steuern und die einzelnen Gruppen für einen einfachen Vergleich nebeneinander zu platzieren.
import numpy as np
# Define library names
library = ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine']
# Number of Enthusiasts for different regions
enthusiasts_north = [2000, 1500, 2500, 2000]
enthusiasts_south = [1500, 1300, 2000, 1800]
bar_width = 0.35
x = np.arange(len(library))
# Grouped Bar Plot
plt.bar(x - bar_width/2, enthusiasts_north, bar_width, label='North Region', color='skyblue')
plt.bar(x + bar_width/2, enthusiasts_south, bar_width, label='South Region', color='lightgreen')
# Adding labels and title
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Regional Preferences for Visualization Libraries (Grouped)')
plt.xticks(x, library)
plt.legend(title='Regions')
plt.show()
In diesem Beispiel erstellt die Zeile x = np.arange(len(library))
eine Reihe von Positionen für die Balken. Die Funktion plt.bar()
wird zweimal verwendet, um die Balken für jede Region zu erstellen, und die Funktion plt.xticks()
setzt die Beschriftungen auf der x-Achse. Die Funktion plt.legend()
zeigt eine Legende zur Unterscheidung der Regionen an.
Für ein gestapeltes Balkendiagramm kannst du den Parameter bottom
verwenden, um einen Datensatz über einen anderen zu stapeln. So kannst du die Anzahl der Enthusiasten aus den verschiedenen Regionen für jede Bibliothek stapeln.
# Define library names
library = ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine']
# Number of Enthusiasts for different regions
enthusiasts_north = [2000, 1500, 2500, 2000]
enthusiasts_south = [1500, 1300, 2000, 1800]
x = np.arange(len(library))
# Stacked Bar Plot
plt.bar(x, enthusiasts_north, label='North Region', color='skyblue')
plt.bar(x, enthusiasts_south, bottom=enthusiasts_north, label='South Region', color='lightcoral')
# Adding labels and title
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Regional Preferences for Visualization Libraries (Stacked)')
plt.legend()
plt.show()
In diesem gestapelten Balkendiagramm stellt enthusiasts_south
die Daten für Enthusiasten in der Region Süd dar, während enthusiasts_north
als Basisdaten für die Region Nord verwendet wird. Die Funktion plt.bra()
wird einmal aufgerufen, um die Balken für die Region Nord zu erstellen, und dann noch einmal, um die Balken für die Region Süd darüber zu stapeln.
In unserem Kurs " Einführung in die Datenvisualisierung mit Matplotlib " erfährst du, wie du die Python-Bibliothek Matplotlib verwenden kannst. Außerdem gibt es unser Matplotlib Cheat Sheet, das den Prozess in sechs grundlegende Schritte unterteilt.
Erstellen von Balkendiagrammen mit Seaborn
Seaborn ist eine Visualisierungsbibliothek, die auf Matplotlib aufbaut und die Erstellung sehr schöner Balkendiagramme vereinfacht.
Grundlegende Balkendiagramme
Mit der Funktion barplot()
von Seaborn kannst du mit minimalem Code einfache Balkendiagramme erstellen. Importiere zunächst die Seaborn-Bibliothek und erstelle ein Wörterbuch.
import seaborn as sns
data = {'Library': library, 'Chosen by': chosen_by}
Verwende dann die Funktion sns.barplot()
, um das Balkendiagramm zu erstellen, und gib die x- und y-Variablen sowie die Datenquelle an. Hier verwende ich die viridis
Farbpalette.
sns.barplot(x='Library', y='Chosen by', data=data, palette='viridis')
plt.title('Which Visualization Library Do People Prefer?')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()
Wenn du keinen Wert für palette
hinzufügst, erhältst du eine einheitliche Farbe in deinem Diagramm oder, noch besser, du kannst dem Balkendiagramm eine Farbe zuweisen. In diesem Fall werde ich einen Hexcode verwenden:
sns.barplot(x='Library', y='Chosen by', data=data, color=’#5EB1FF’)
plt.title('Which Visualization Library Do People Prefer?')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()
Erweiterte Anpassung
Seaborn ermöglicht natürlich auch umfangreiche Anpassungsmöglichkeiten, einschließlich Farben und Anmerkungen. Du kannst zum Beispiel Anmerkungen zum Balkendiagramm hinzufügen, ähnlich wie du es in Matplotlib gemacht hast.
# Customized Bar Plot
sns.barplot(x='Library', y='Chosen by', data=data, palette='viridis')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
# Adding annotations
for i, value in enumerate(chosen_by):
plt.text(i, value + 5, str(value), ha='center')
plt.show()
In diesem Beispiel ändert der Parameter palette='viridis'
die Farbpalette der Balken, und die Funktion plt.text()
fügt jedem Balken Anmerkungen hinzu.
In unserem Kurs Einführung in die Datenvisualisierung mit Seaborn erfährst du mehr darüber. Damit dein Seaborn-Balkendiagramm besonders schön aussieht, kannst du unsere Seaborn-Farbpalette verwenden: Quick Guide to Picking Colors für einige gute Ideen.
Erstellen von Balkendiagrammen mit Plotly
Als Nächstes kommt Plotly, eine Bibliothek, die für die Erstellung interaktiver und dynamischer Visualisierungen bekannt ist, darunter auch Balkendiagramme.
Grundlegende Balkendiagramme
Um ein einfaches Balkendiagramm mit Plotly zu erstellen, musst du das Modul graph_objects
verwenden. Wir können das erforderliche Modul importieren und ein Balkendiagramm erstellen, indem wir die Balken himmelblau färben.
import plotly.graph_objects as go
fig = go.Figure(go.Bar(x=library, y=chosen_by, marker_color='skyblue'))
fig.update_layout(title='Which Visualization Library Do People Prefer?', xaxis_title='Visualization Library', yaxis_title='Number of Enthusiasts')
fig.show()
Erweiterte Anpassung
Plotly bietet Möglichkeiten, um die Interaktivität und das Aussehen von Balkendiagrammen zu verbessern. Du kannst zum Beispiel mit der Funktion fig.add_annotation()
Anmerkungen zu den Balken hinzufügen.
fig = go.Figure(go.Bar(x=library, y=chosen_by, marker_color='skyblue'))
fig.update_layout(title='Which Visualization Library Do People Prefer?', xaxis_title='Visualization Library', yaxis_title='Number of Enthusiasts')
# Adding annotations
for i, value in enumerate(chosen_by):
fig.add_annotation(x=library[i], y=value, text=str(value), showarrow=False, yshift=10)
fig.show()
Dynamische und interaktive Balkendiagramme
Plotly kann dynamische Balkendiagramme erstellen, die sich in Echtzeit aktualisieren, was sie ideal für Dashboards macht. Mit Plotly Express, einer High-Level-Schnittstelle für Plotly, kannst du mit minimalem Code interaktive Balkendiagramme erstellen.
import plotly.express as px
# Using a sample dataset from Plotly
df = px.data.gapminder().query("year == 2007")
fig = px.bar(df, x='continent', y='pop', color='continent', hover_name='country', title='Population by Continent in 2007')
fig.show()
In diesem Beispiel lädt die Funktion px.data.gapminder()
einen Beispieldatensatz aus Plotly. Die Funktion px.bar()
erstellt ein interaktives Balkendiagramm mit den angegebenen x- und y-Variablen, der Farbe, dem Hovernamen und dem Titel. Wir haben einen detaillierten Kurs hier bei DataCammp, wenn du mehr sehen willst: Einführung in die Datenvisualisierung mit Plotly.
Erstellen von Balkendiagrammen mit Plotnine
Plotnine ist eine Implementierung der Grammatik von Grafiken in Python, die von ggplot2 in R inspiriert ist. Sie ermöglicht die deklarative Erstellung komplexer Plots durch die Kombination verschiedener Plot-Elemente.
Grundlegende Balkendiagramme
Um mit Plotnine zu beginnen, importiere die notwendigen Bibliotheken und erstelle einen DataFrame. Dann definierst du ein ggplot
Objekt, fügst eine geom_bar
Ebene hinzu und legst die Ästhetik fest.
from plotnine import ggplot, aes, geom_bar, labs
import pandas as pd
# Number of preferences for different libraries
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'Chosen by': [2500, 1800, 3000, 2200]})
# Basic Bar Plot
ggplot(data, aes(x='Library', y='Chosen by')) + geom_bar(stat='identity', fill='skyblue') + labs(title='Which Visualization Library Do People Prefer?', x='Visualization Library', y='Number of Enthusiasts')
In diesem Beispiel richtet aes(x='Library', y='Chosen by')
die x- und y-Ästhetik für die Darstellung ein. Der Teil geom_bar(stat='identity', fill='skyblue')
erstellt ein Balkendiagramm mit einer himmelblauen Füllfarbe.
Erweiterte Anpassung
Du kannst sie mit dem mehrstufigen Ansatz von Plotnine anpassen. Du kannst Beschriftungen, Achsenbeschriftungen, Titel und Legenden hinzufügen.
from plotnine import ggplot, aes, geom_bar, geom_text, labs
# Creating our Pandas DataFrame
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'Chosen by': [2500, 1800, 3000, 2200]})
# Basic Bar Plot with labels
(ggplot(data, aes(x='Library', y='Chosen by'))
+ geom_bar(stat='identity', fill='skyblue')
+ geom_text(aes(label='Chosen by'), va='bottom', size=10, nudge_y=5) # Adds labels on top of bars
+ labs(title='Which Visualization Library Do People Prefer?', x='Visualization Library', y='Number of Enthusiasts'))
Gruppierte und gestapelte Balkendiagramme
Plotnine unterstützt auch gruppierte und gestapelte Balkendiagramme. Für gruppierte Balkendiagramme musst du zunächst eine kategoriale Variable für die Gruppierung definieren.
# Number of preferences for different libraries in different regions
data = pd.DataFrame({'Library': ['Matplotlib', 'Plotly', 'Plotnine', 'Seaborn'] * 2,
'Chosen by': [2000, 1500, 2500, 2000, 1500, 1300, 2000, 1800],
'Region': ['North', 'North', 'North', 'North', 'South', 'South', 'South', 'South']})
# Grouped Bar Plot
(ggplot(data, aes(x='Library', y='Chosen by', fill='Region'))
+ geom_bar(stat='identity', position='dodge')
+ labs(title='Regional Preferences for Visualization Libraries (Grouped)', x='Visualization Library', y='Number of Enthusiasts'))
Für gestapelte Balkendiagramme kannst du position = 'stack'
verwenden.
# Stacked Bar Plot
(ggplot(data, aes(x='Library', y='Chosen by', fill='Region'))
+ geom_bar(stat='identity', position='stack')
+ labs(title='Regional Preferences for Visualization Libraries (Stacked)', x='Visualization Library', y='Number of Enthusiasts'))
Beachte, dass in diesen Beispielen position = 'dodge'
gruppierte Balken erstellt, während position = 'stack'
die Balken stapelt.
Erstellen von Balkendiagrammen mit Pandas
Zu guter Letzt: Pandas. Pandas bietet eine bequeme Möglichkeit, Balkendiagramme direkt aus DataFrames zu erstellen, und ist damit eine schnelle und einfache Option für grundlegende Diagramme.
Grundlegende Balkendiagramme
Um ein Balkendiagramm in Pandas zu erstellen, kannst du die Funktion plot.bar()
auf einen DataFrame anwenden.
import pandas as pd
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'Chosen by': [2500, 1800, 3000, 2200]})
Erstelle dann mit plot.bar()
ein Balkendiagramm.
# Basic Bar Plot
data.plot.bar(x='Library', y='Chosen by', color='skyblue', title='Which Visualization Library Do People Prefer?')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()
Erweiterte Anpassung
Pandas ermöglicht die Anpassung von Balkendiagrammen durch zusätzliche Parameter und die Integration mit Matplotlib.
# Customized Bar Plot
ax = data.plot.bar(x='Library', y='Chosen by', color='skyblue', title='Which Visualization Library Do People Prefer?')
ax.set_xlabel('Visualization Library')
ax.set_ylabel('Number of Enthusiasts')
# Adding annotations
for i in ax.containers:
ax.bar_label(i, label_type='edge')
plt.show()
In diesem Beispiel fügt ax.bar_label(i, label_type='edge')
den Balken Anmerkungen hinzu, indem es die Nummer oben auf jedem Balken anzeigt.
Gruppierte und gestapelte Balkendiagramme
Das Erstellen von gruppierten und gestapelten Balkendiagrammen in Pandas ist ganz einfach. Für gruppierte Balkendiagramme musst du den DataFrame so drehen, dass für jede Gruppe eine eigene Spalte entsteht.
# Number of preferences for different libraries in different regions
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'North Region': [2000, 1500, 2500, 2000],
'South Region': [1500, 1300, 2000, 1800]})
# Grouped Bar Plot
data.plot.bar(x='Library', y=['North Region', 'South Region'], title='Regional Preferences for Visualization Libraries (Grouped)')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()
Für gestapelte Balkendiagramme verwendest du stacked=True
.
# Stacked Bar Plot
data.plot.bar(x='Library', y=['North Region', 'South Region'], stacked=True, title='Regional Preferences for Visualization Libraries (Stacked)')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()
Best Practices für die Gestaltung effektiver Python-Balkendiagramme
Das Erstellen von Balkendiagrammen ist einfach, aber die Gestaltung effektiver und aufschlussreicher Balkendiagramme erfordert viel Liebe zum Detail. Die folgenden Richtlinien helfen dir, Balkendiagramme zu erstellen, die die Geschichte deiner Daten effektiv vermitteln.
- Vermeiden von häufigen Fehlern: Wenn du Balkendiagramme entwirfst, vermeide eine Überfrachtung mit Informationen, damit sie übersichtlich und effektiv bleiben. Beschränke dich auf das Wesentliche, um Unordnung zu vermeiden. Verwende eine einheitliche Skalierung für alle Achsen. Achte darauf, dass die Achse bei Null beginnt, damit die Betrachter nicht durch übertriebene Unterschiede in die Irre geführt werden.
- Auswahl der Farben und Highlights: Wähle Farben, die deinen Daten Bedeutung verleihen, z.B. Rot für negative Werte oder Grün für positive Werte. Behalte ein einheitliches Farbschema für zusammenhängende Handlungsstränge bei, um dem Leser zu helfen, der Erzählung zu folgen. Verwende Farbe, um die Aufmerksamkeit auf wichtige Erkenntnisse zu lenken.
- Stäbe bestellen für mehr Klarheit: Ordne die Balken je nach Datenkontext logisch an, z. B. chronologisch für zeitbasierte Daten oder in absteigender/aufsteigender Reihenfolge, um Trends hervorzuheben. Gruppiere zusammengehörige Balken und trenne die Gruppen mit Farbe oder Abstand.
Fazit
Das Erstellen und Anpassen von Balkendiagrammen ist eine wichtige Fähigkeit für jeden Datenexperten. Wenn du die in diesem Artikel beschriebenen Richtlinien und Best Practices befolgst, kannst du klare, informative und optisch ansprechende Balkendiagramme erstellen, die deine Dateneinblicke effektiv vermitteln. So kannst du deine Daten besser präsentieren und fundiertere Entscheidungen treffen.
Wenn du deine Fähigkeiten in der Datenvisualisierung mit Python weiter trainieren möchtest, schau dir unseren Kurs "Einführung in Python für Datenwissenschaft " an, der Anfängern einen guten Ausgangspunkt bietet, oder sieh dir unseren Lernpfad " Python-Programmierung " an, der einen umfassenden Lernpfad für die Beherrschung von Python bietet.
Erfahrene Datenexpertin und Autorin, die sich leidenschaftlich dafür einsetzt, aufstrebende Datenexperten zu fördern.
Python Bar Plot FAQs
Was ist ein Python-Balkendiagramm, und warum ist es nützlich?
Ein Balkendiagramm stellt kategoriale Daten mit rechteckigen Balken dar, wobei die Länge oder Höhe dem Wert der Kategorie entspricht. Sie ist nützlich, um Kategorien zu vergleichen, Verteilungen zu visualisieren und Trends oder Ausreißer zu erkennen.
Wie wähle ich zwischen einem vertikalen und einem horizontalen Python-Balkendiagramm?
Du kannst ein vertikales Balkendiagramm für kurze oder leicht lesbare Beschriftungen verwenden, während du ein horizontales Balkendiagramm für längere Beschriftungen oder viele Kategorien wählst, um Unordnung zu vermeiden.
Wie kann ich die Farben der Balken in meinem Diagramm anpassen?
Du kannst die Farben der Balken anpassen, um dein Diagramm optisch ansprechender zu gestalten oder um es einem bestimmten Farbschema anzupassen. In Matplotlib verwendest du den Parameter color
:
plt.bar(categories, values, color=['red', 'green', 'blue'])
plt.show()
Wie kann ich Python verwenden, um die Balken in meinem Balkendiagramm zu sortieren?
Die Sortierung der Balken kann helfen, die wichtigsten oder unwichtigsten Kategorien hervorzuheben. Du kannst deine Daten vor dem Plotten sortieren:
data = {'Category': ['A', 'B', 'C'], 'Value': [4, 7, 1]}
df = pd.DataFrame(data).sort_values(by='Value', ascending=False)
plt.bar(df['Category'], df['Value'])
plt.show()
Kann ich mit Plotly interaktive Python-Balkenplots erstellen?
Ja, mit Plotly kannst du interaktive Balkendiagramme erstellen. Hier ist ein Beispiel mit Plotly Express:
import plotly.express as px
data = {'Category': ['A', 'B', 'C'], 'Value': [4, 7, 1]}
fig = px.bar(data, x='Category', y='Value', title='Interactive Bar Plot')
fig.show()
Lerne mit DataCamp Python und Balkendiagramme kennen
Kurs
Introduction to Data Visualization with Seaborn
Kurs
Exploratory Data Analysis in Python

Der Blog
Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn
Der Blog
2022-2023 DataCamp Classrooms Jahresbericht
Der Blog
Q2 2023 DataCamp Donates Digest
Der Blog
Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Nisha Arya Ahmed
20 Min.
Der Blog
Top 30 Generative KI Interview Fragen und Antworten für 2024

Hesam Sheikh Hassani
15 Min.