Seaborn Barplot: Ein vollständiger Leitfaden

Datenvisualisierung verwandelt komplexe Informationen in klare, handlungsfähige Erkenntnisse. Seaborn-Barplots zeichnen sich durch die Präsentation kategorischer Daten mittels eleganter, statistischer Grafiken aus. Die Bibliothek vereint die Flexibilität von Matplotlib mit der Leistung von pandas und eignet sich somit ideal sowohl für schnelle Analysen als auch für publikationsfertige Visualisierungen.

Seaborn-Barplots bieten wesentliche Funktionen für die Datenanalyse – von einfachen Vergleichen bis hin zu fortgeschrittenen statistischen Darstellungen. Sie übernehmen gängige Aufgaben wie den Vergleich von Umsatzkennzahlen in verschiedenen Regionen, die Analyse von Umfrageergebnissen und die Visualisierung von Experiment-Ergebnissen.

Die intuitive Syntax der Bibliothek und die integrierten statistischen Funktionen machen sie sowohl für Anfänger als auch für erfahrene Datenpraktiker wertvoll.

In diesem Artikel werfen wir einen Blick auf die Grundlagen von Seaborn-Barplots, erstellen grundlegende Plots mit Codebeispielen, verbessern Plots durch Anpassungen, implementieren fortgeschrittene Funktionen und erkunden praktische Anwendungen.

Um mehr über die Datenvisualisierung mit Seaborn zu erfahren, schau dir unseren Einführung in die Datenvisualisierung mit Seaborn Kurs an.

Seaborn Barplot Grundlagen

Bevor wir uns mit Barplots beschäftigen, werfen wir einen Blick auf einige Grundlagen von Seaborn, seine Vorteile für Balkendiagramme und wie man die Codierungs-Umgebung einrichtet.

Was ist Seaborn?

Seaborn ist eine Python-Bibliothek zur statistischen Datenvisualisierung, die auf Matplotlib aufbaut. Sie spezialisiert sich darauf, informative und ansprechende statistische Grafiken mit minimalem Code zu erstellen. Die Bibliothek integriert sich eng mit pandas DataFrames, was sie besonders effektiv für Datenanalyse-Workflows macht.

Sie bietet eine hochgradige Schnittstelle, um ansprechende Diagramme zu zeichnen, während viele Styling-Details automatisch behandelt werden.

Die Bibliothek zeichnet sich durch drei wichtige Aspekte aus:

  • Sie integriert sich nahtlos mit pandas DataFrames, was die Datenmanipulation unkompliziert macht.
  • Es wird mit integrierten statistischen Funktionen geliefert, die separate Berechnungen überflüssig machen
  • Es wendet standardmäßig professionell aussehende Themen und Farbpaletten an

Zum Beispiel erfordert Matplotlib mehrere Codezeilen, um eine grundlegende statistische Visualisierung zu erstellen, während Seaborn die gleiche Aufgabe mit einem einzigen Funktionsaufruf erledigen kann.

Insbesondere für Balkendiagramme fügt Seaborn leistungsstarke Funktionen wie automatische Mittelwertberechnung, Konfidenzintervalle und fortschrittliche Behandlung kategorischer Variablen hinzu – Fähigkeiten, die in reinem Matplotlib erheblichen zusätzlichen Code erfordern würden.

Warum Balkendiagramme verwenden?

Barplots stellen kategoriale Daten durch vertikale oder horizontale Balken dar, wobei die Länge einen numerischen Wert repräsentiert. Dies macht sie ideal zum Vergleich von Werten über verschiedene Gruppen oder Kategorien hinweg. In der Datenanalyse helfen Balkendiagramme dabei, Umfrageergebnisse, Marktanteile, Leistungsmetriken und Umsatzverteilungen zu visualisieren.

Die wichtigsten Vorteile sind:

  • Klare Vergleichbarkeit von Mengen über Kategorien hinweg
  • Eingebaute statistische Merkmale (Mittelwert, Median, Konfidenzintervalle)
  • Effektive Darstellung von gruppierten Daten
  • Einfache, aber informative visuelle Elemente
  • Einfache Anpassungsmöglichkeiten für professionelle Präsentationen

Schnelle Einrichtung

Um mit Seaborn Balkendiagramme zu erstellen, müssen wir unsere Python-Umgebung einrichten. So geht’s:

Zuerst installieren wir die erforderlichen Pakete wie unten gezeigt:

pip install seaborn pandas numpy

Jetzt haben wir alle unsere Visualisierungstools einsatzbereit. Importieren wir die benötigten Bibliotheken, wie unten gezeigt:

# Für die Erstellung statistischer Visualisierungen import seaborn as sns # Für Datenmanipulation und -analyse import pandas as pd # Für numerische Operationen import numpy as np

Wir können unsere Diagramme mit einigen Style-Einstellungen verbessern, wie folgt:

# Sauberer Weiß-Stil sns.set_style("white")

Der white Stil entfernt Gitterlinien und lässt die Diagramme auf den meisten Bildschirmen gut aussehen. In den nächsten Abschnitten werden wir uns mit der Erstellung von Balkendiagrammen und deren Verbesserung befassen.

Erstellung von grundlegenden Seaborn Balkendiagrammen

Ein Balkendiagramm eignet sich hervorragend zur Visualisierung von Beziehungen zwischen kategorialen und numerischen Variablen. Es zeigt Punktabschätzungen (wie Mittelwert oder Median) und die Unsicherheit um diese Schätzungen durch Fehlerbalken. Schauen wir uns die grundlegende Syntax des seaborn Balkendiagramms an.

Syntax und Parameter

Die sns.barplot() Funktion in Seaborn bietet eine einfache Möglichkeit, statistische Balkendiagramme zu erstellen. Die grundlegende Struktur der .barplot() Funktion sieht wie folgt aus:

sns.barplot( data=None, # Your DataFrame x=None, # Category variable y=None, # Numeric variable estimator='mean', # Statistical function to estimate errorbar=('ci', 95), # Error bars type and level orient=None # "v" for vertical, "h" for horizontal )

Diese Parameter geben uns die Kontrolle darüber, welche Daten wir anzeigen und wie wir sie anzeigen. Der data Parameter nimmt Ihr DataFrame an, während x und y angeben, welche Spalten für die Kategorien und Werte verwendet werden sollen. Der estimator ermöglicht es Ihnen, die statistische Funktion auszuwählen (standardmäßig Mittelwert), und errorbar steuert, wie Ungewissheit angezeigt wird. Sie können auch zwischen vertikaler und horizontaler Ausrichtung mit dem orient Parameter wechseln.

Jetzt schauen wir uns an, wie man effektive Balkendiagramme mit dem integrierten Trinkgeld-Datensatz von Seaborn erstellt, der Informationen über Restaurantrechnungen und Trinkgelder enthält.

Beispiel: Visualisierung eines einfachen Datensatzes

Wir werden das Trinkgeldverhalten an verschiedenen Wochentagen anhand des Trinkgeld-Datensatzes betrachten. Dieser Datensatz enthält Informationen über Restaurantrechnungen, einschließlich des Wochentags, des Gesamtbetrags der Rechnung, des Trinkgeldbetrags und anderer Variablen.

# Erforderliche Bibliotheken importieren und Datensatz laden import seaborn as sns tips = sns.load_dataset("tips") # Grundlegendes Balkendiagramm erstellen, das durchschnittliche Trinkgelder nach Wochentag zeigt sns.barplot(data=tips, x="day", y="tip")

Ausgabe:

Unser Code hat die obige Visualisierung erstellt, bei der jeder Balken den durchschnittlichen Trinkgeldbetrag für einen anderen Wochentag darstellt. Die Höhe jedes Balkens zeigt den mittleren Trinkgeldwert an, während die schwarzen Linien (Fehlerbalken) das 95%-Konfidenzintervall anzeigen – was uns Einblicke sowohl in den typischen Trinkgeldbetrag als auch in seine Variation gibt.

Wir können auch das Trinkgeldverhalten zu verschiedenen Essenszeiten untersuchen:

# Balkendiagramm erstellen, das durchschnittliche Trinkgelder nach Tageszeit zeigt sns.barplot(data=tips, x="time", y="tip")

Ausgabe:

Diese Darstellung zeigt den Unterschied im Trinkgeldverhalten zwischen dem Mittag- und Abendessen. Die Höhe jeder Stange repräsentiert den durchschnittlichen Trinkgeldbetrag zu dieser Tageszeit, wobei Fehlerbalken die Variabilität im Trinkgeldverhalten zeigen. Diese Art der Visualisierung macht es einfach, Muster zu erkennen und Gruppen auf einen Blick zu vergleichen.

Diese grundlegenden Balkendiagramme bilden die Grundlage für komplexere Visualisierungen. Im nächsten Abschnitt werden wir sehen, wie man diese Diagramme mit Farben, Gruppierungen und anderen Anpassungen verbessern kann, um informativere und optisch ansprechendere Visualisierungen zu erstellen.

Verbesserung von Balkendiagrammen mit Anpassungen

Visuelle Verbesserungen unserer Balkendiagramme können dazu beitragen, unsere Daten ansprechender und verständlicher zu gestalten. Lassen Sie uns die verschiedenen Möglichkeiten sehen, Balkendiagramme mit dem Datensatz „tips“ anzupassen.

Hinzufügen von Farben zu Balkendiagrammen

Seaborn bietet mehrere Möglichkeiten, Farben zu Balkendiagrammen hinzuzufügen, um sie optisch ansprechender und informativer zu gestalten. Wir können eine einzelne Farbe für alle Balken verwenden oder farbcodierte Gruppen erstellen,

Der color-Parameter legt eine einzelne Farbe für alle Balken fest, während das palette es Ihnen ermöglicht, ein Farbschema anzugeben, wenn Ihre Daten mehrere Gruppen haben. Seaborn bietet viele integrierte Farbpaletten, die gut für verschiedene Arten von Daten geeignet sind.

Mit dem Farbe-Parameter können wir ein einfaches Balkendiagramm mit einer einzigen Farbe erstellen, wie unten gezeigt:

# Laden Sie den Tips-Datensatz, wenn Sie das noch nicht getan haben import seaborn as sns tips = sns.load_dataset("tips") # Balkendiagramm mit einer Farbe sns.barplot(data=tips, x="day", y="tip", color="skyblue")

Ausgabe:

Mit dem palette-Parameter können wir ein Balkendiagramm mit mehreren Farben erstellen, wie unten gezeigt:

# Laden Sie den Tips-Datensatz, wenn Sie das noch nicht getan haben import seaborn as sns tips = sns.load_dataset("tips") # Verwendung einer anderen Farbpalette sns.barplot(data=tips, x="day", y="tip", palette="Set2")

Ausgabe:

Seaborn-Balkendiagramm mit mehreren Spalten

Eine der leistungsstärksten Funktionen von Seaborn-Balkendiagrammen ist die Möglichkeit, Beziehungen zwischen mehreren Variablen mithilfe des Farbtons-Parameters anzuzeigen. Dies erstellt gruppierte Balken, die Vergleiche erleichtern.

Vergleichen wir die Tipps über beide Tage und Mahlzeiten hinweg unter Verwendung des hue-Parameters wie unten dargestellt:

# Laden Sie den Tipps-Datensatz, wenn Sie ihn noch nicht geladen haben import seaborn as sns tips = sns.load_dataset("tips") # Erstellen Sie ein gruppiertes Balkendiagramm, das Tipps nach Tag und Uhrzeit zeigt sns.barplot( data=tips, x="day", y="tip", hue="time" )

Ausgabe:

Das obige Diagramm zeigt zwei Balken – einen für Mittagessen und einen für Abendessen. Diese Gruppierung hilft uns nicht nur zu sehen, wie sich die Tipps je nach Tag unterscheiden, sondern auch wie sie sich zwischen den Mahlzeiten unterscheiden.

Erstellen eines gestapelten Balkendiagramms mit Seaborn

Gestapelte Balkendiagramme eignen sich hervorragend, um die Zusammensetzung verschiedener Kategorien darzustellen. Obwohl Seaborn keine direkte Funktion für gestapelte Balkendiagramme hat, können wir es mit matplotlib kombinieren, um effektive gestapelte Visualisierungen zu erstellen.

Dieser Ansatz nutzt die statistischen Funktionen von Seaborn und die Stapelfähigkeiten von matplotlib. Als Beispiel, im Tipps-Datensatz, sehen wir, wie sich die Tipps zwischen Rauchern und Nichtrauchern an verschiedenen Tagen verteilen.

Beginnen wir mit dem Importieren der erforderlichen Bibliotheken für unsere Visualisierung:

# Erforderliche Bibliotheken importieren import seaborn as sns import matplotlib.pyplot as plt import numpy as np

Jetzt laden wir unseren Datensatz mit Informationen zu Restaurant-Tipps:

# Laden Sie den Tipps-Datensatz tips = sns.load_dataset("tips")

Wir werden eine Abbildung mit geeigneten Dimensionen für unsere Visualisierung erstellen:

# Erstellen von Abbildung und Achse plt.figure(figsize=(10, 4))

Als nächstes berechnen wir die durchschnittlichen Trinkgelder für Raucher und Nichtraucher an verschiedenen Tagen:

# Berechnung der Werte für die Stapelung # Raucher filtern, nach Tag gruppieren und durchschnittliche Trinkgelder erhalten smoker_means = tips[tips['smoker']=='Yes'].groupby('day')['tip'].mean() # Nichtraucher filtern, nach Tag gruppieren und durchschnittliche Trinkgelder erhalten non_smoker_means = tips[tips['smoker']=='No'].groupby('day')['tip'].mean()

Als nächstes richten wir die Grundparameter für unsere gestapelten Balken wie unten gezeigt ein:

# Gestapelte Balken mit matplotlib plotten days = smoker_means.index width = 0.8

Jetzt erstellen wir die untere Schicht unserer gestapelten Balken für Nichtraucher:

# Unterste Balken erstellen (Nichtraucher) plt.bar(days, non_smoker_means, width, label='Non-smoker', color=sns.color_palette()[0])

Wir fügen die obere Schicht für die Trinkgelder der Raucher hinzu:

# Obere Balken erstellen (Raucher) plt.bar(days, smoker_means, width, bottom=non_smoker_means, label='Smoker', color=sns.color_palette()[1])

Wir setzen einen sauberen Stil ohne Gitterlinien unter Verwendung des Seaborn-Stils:

# Seaborn-Stil hinzufügen sns.set_style("white")

Zuletzt zeigen wir unser fertiges gestapeltes Balkendiagramm an:

# Diagramm anzeigen plt.show()

Ausgabe:

Das resultierende Diagramm zeigt die durchschnittlichen Trinkgelder von Rauchern gestapelt auf den Trinkgeldern von Nichtrauchern für jeden Tag, was es einfach macht, sowohl die Gesamt-Trinkgelder als auch den Beitrag jeder Gruppe zu vergleichen.

Dieser Workaround ermöglicht es uns:

  • Seaborns attraktiven visuellen Stil beizubehalten
  • Unsere Balken zu stapeln, um die Zusammensetzung anzuzeigen
  • Die statistische Natur unserer Visualisierung beizubehalten
  • Seaborns Farbpaletten für Konsistenz zu nutzen

Erweiterte Funktionen und Tipps

Nun, da wir die Grundlagen und Anpassungen behandelt haben, werfen wir einen Blick auf einige fortgeschrittene Funktionen, die unsere Balkendiagramme informativer und professioneller machen können. Wir werden weiterhin das Datenset „tips“ verwenden, um diese fortgeschrittenen Techniken zu demonstrieren.

Annotation von Balkendiagrammen

Das Hinzufügen von Wertelabels zu den Balken kann Ihre Visualisierungen präziser und informativer machen. Lassen Sie uns ein Balkendiagramm erstellen, das die genauen Trinkgeldwerte über jedem Balken anzeigt.

Zuerst importieren wir unsere Bibliotheken und bereiten unsere Daten vor:

# Erforderliche Bibliotheken importieren import seaborn as sns import matplotlib.pyplot as plt # Datenset "tips" laden und vorbereiten tips = sns.load_dataset("tips")

Erstellen wir unser Balkendiagramm mit statistischen Werten:

# Grundlegendes Balkendiagramm erstellen ax = sns.barplot(data=tips, x="day", y="tip”, errorbar=None) # Create barplot and store the axes object for annotations

Als nächstes fügen wir Wertelabels oben auf jedem Balken hinzu, wie unten dargestellt:

# Höhe jedes Balkens abrufen bars = ax.containers[0] # Get the bar container object heights = [bar.get_height() for bar in bars] # Extract height of each bar # Textannotationen oben auf jedem Balken hinzufügen for bar, height in zip(bars, heights): # Loop through bars and heights together ax.text( bar.get_x() + bar.get_width()/2., # X position (center of bar) height, # Y position (top of bar) f'${height:.2f}', # Text (format as currency) ha='center', # Horizontal alignment va='bottom' # Vertical alignment )

Ausgabe:

Achsen und Skalen verwalten

Beim Erstellen von Balkendiagrammen trägt die Anpassung der Achsen dazu bei, Ihre Daten lesbarer und wirkungsvoller zu machen. Sehen wir, wie man Achsenbegrenzungen, Beschriftungen und Ticks mithilfe der Funktionen von Seaborn anpassen kann.

Zuerst importieren wir unsere Bibliothek und laden das Datenset, das wir für unsere Visualisierung benötigen:

# Erforderliche Bibliotheken importieren import seaborn as sns # Datenset "tips" laden und vorbereiten tips = sns.load_dataset("tips")

Wir können ein Balkendiagramm mit benutzerdefinierten Beschriftungen und Reihenfolge der Tage erstellen. Der order Parameter ermöglicht es uns genau anzugeben, wie wir unsere Tage auf der x-Achse anordnen möchten:

# Balkendiagramm mit Achsenbeschriftungen erstellen ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', ‘Fri', 'Sun'] # Set custom order for days )

Um unser Diagramm informativer zu gestalten, können wir beschreibende Beschriftungen für beide Achsen hinzufügen, indem wir die set Methode verwenden:

# Beschreibende Achsenbeschriftungen festlegen ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' )

Zur Feinabstimmung unserer Visualisierung können wir spezifische Grenzen und Teilstriche festlegen. Der ylim Parameter steuert den Bereich der y-Achse, während xticks und yticks es uns ermöglichen genau festzulegen, wo wir unsere Teilstriche platzieren möchten:

# Achsenbeschriftungen und Teilstriche anpassen ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )

Um all diese Änderungen im Diagramm zu integrieren, müssen wir sie auf einmal ausführen und nicht einzeln. Der gesamte Code wird unten angezeigt:

# Erforderliche Bibliotheken importieren import seaborn as sns # Datensatz "tips" laden und vorbereiten tips = sns.load_dataset("tips") # Balkendiagramm mit Achsenbeschriftungen erstellen ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', 'Fri', 'Sun'] # Set custom order for days ) # Deskriptive Achsenbeschriftungen festlegen ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' ) # Achsenbegrenzungen und -ticks anpassen ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )

Ausgabe:

Das resultierende Diagramm zeigt Trinkgelder nach Tag mit klaren Beschriftungen, passenden Skalen und gut organisierten Tick-Markierungen, was das Lesen und Interpretieren der Daten erleichtert.

Einbeziehung von Fehlerbalken

Fehlerbalken helfen, die Unsicherheit oder Variabilität Ihrer Daten zu visualisieren. Seaborn bietet mehrere Optionen zum Hinzufügen von Fehlerbalken zu Ihren Balkendiagrammen, einschließlich Konfidenzintervallen und Standardabweichung.

Zuerst importieren wir unsere Bibliothek und laden den Datensatz, den wir für unsere Visualisierung benötigen:

# Benötigte Bibliotheken importieren import seaborn as sns # Datensatz laden und vorbereiten tips = sns.load_dataset("tips")

Standardmäßig zeigt Seaborn 95% Konfidenzintervalle an. Wir können dies mit dem ‚errorbar‘-Parameter ändern, um verschiedene Arten von statistischen Schätzungen anzuzeigen:

# Balkendiagramm mit Konfidenzintervallen erstellen ax = sns.barplot( data=tips, x="day", y="tip", errorbar="ci", # Show confidence interval capsize=0.1 # Add small caps to error bars )

Ausgabe:

Wir können auch die Standardabweichung anstelle von Konfidenzintervallen anzeigen, um die Streuung unserer Daten zu visualisieren:

# Auf Standardabweichung umschalten ax = sns.barplot( data=tips, x="day", y="tip", errorbar="sd", # Show standard deviation capsize=0.1 # Add small caps to error bars )

Ausgabe:

Manchmal möchten wir die Fehlerbalken vollständig entfernen, um ein saubereres Aussehen zu erzielen:

# Erstellen Sie ein Balkendiagramm ohne Fehlerbalken ax = sns.barplot( data=tips, x="day", y="tip", errorbar=None # Remove error bars )

Ausgabe:

Die resultierenden Diagramme zeigen, wie unterschiedliche Fehlerbalkentypen uns helfen können, die Variabilität unserer Trinkgelddaten an verschiedenen Wochentagen zu verstehen.

Praktische Anwendungen von Seaborn-Barplots

Barplots sind vielseitige Werkzeuge in der Datenvisualisierung, besonders nützlich, wenn Sie Werte über verschiedene Kategorien vergleichen müssen oder mehrere Variablen gleichzeitig analysieren möchten. Lassen Sie uns zwei häufige Anwendungen betrachten, in denen Seaborn-Barplots glänzen.

Seaborn-Barplots eignen sich besonders gut, um Muster in kategorischen Daten aufzudecken, insbesondere bei der Analyse von Metriken über verschiedene Gruppen hinweg. Durch die Darstellung sowohl der zentralen Tendenz als auch der Unsicherheit helfen Barplots, signifikante Unterschiede zwischen Kategorien zu identifizieren.

Dies macht sie ideal für die Analyse des Kundenverhaltens, der Produktleistung oder der Umfrageantworten, bei denen Werte über verschiedene Gruppen hinweg verglichen werden müssen.

Vergleich mehrerer Variablen

Wenn unsere Analyse mehrere Faktoren umfasst, können Seaborn’s Barplots komplexe Beziehungen in unseren Daten hervorheben. Die Verwendung von Funktionen wie Gruppierung (Hue) oder Stapelung hilft beim gleichzeitigen Vergleich verschiedener Variablen, was es einfacher macht, Muster und Interaktionen zwischen verschiedenen Aspekten unserer Daten zu erkennen.

Conclusion

Seaborn-Barplots treffen den richtigen Kompromiss zwischen Einfachheit und statistischem Einblick. Die intuitive Syntax der Bibliothek in Verbindung mit robusten statistischen Funktionen macht sie zu einem unverzichtbaren Werkzeug für die Datenvisualisierung. Von einfachen Kategorienvergleichen bis hin zu fortgeschrittenen gruppierten Visualisierungen helfen Barplots dabei, Datenmuster effektiv aufzudecken und zu kommunizieren.

Bereit, Ihre Datenvisualisierungsfähigkeiten auf die nächste Stufe zu heben? Hier ist, was als Nächstes erkundet werden kann:

Möchten Sie Ihre Seaborn-Fähigkeiten auf das nächste Level bringen? Melden Sie sich an zum Kurs für fortgeschrittene Datenvisualisierung mit Seaborn.

Source:
https://www.datacamp.com/tutorial/seaborn-barplot