Seaborn Barplot: Een Complete Gids

Data visualisatie transformeert complexe informatie in duidelijke, bruikbare inzichten. Seaborn barplots excelleren in het presenteren van categorische gegevens door middel van elegante, statistische grafieken. De bibliotheek combineert de flexibiliteit van Matplotlib met de kracht van pandas, waardoor het ideaal is voor zowel snelle analyses als publicatieklare visualisaties.

Seaborn barplots bieden essentiële functies voor gegevensanalyse – van basisvergelijkingen tot geavanceerde statistische weergaven. Ze behandelen veelvoorkomende taken zoals het vergelijken van verkoopstatistieken over regio’s, het analyseren van enquêteresultaten en het visualiseren van experimentresultaten.

De intuïtieve syntaxis van de bibliotheek en de ingebouwde statistische functies maken het waardevol voor zowel beginners als ervaren data-professionals.

In dit artikel zullen we kijken naar de basisprincipes van Seaborn barplot, het maken van basisplots met codevoorbeelden, het verbeteren van plots door middel van aanpassingen, het implementeren van geavanceerde functies en het verkennen van praktische toepassingen.

Om meer te leren over gegevensvisualisatie met Seaborn, bekijk onze Inleiding tot Gegevensvisualisatie met Seaborn cursus.

Seaborn barplot Basics

Voordat we ingaan op barplots, laten we eens kijken naar enkele basisprincipes van Seaborn, de voordelen ervan voor barplots, en hoe de codeeromgeving op te zetten.

Wat is Seaborn?

Seaborn is een Python statistische data visualisatiebibliotheek gebouwd op de basis van Matplotlib. Het is gespecialiseerd in het creëren van informatieve en aantrekkelijke statistische afbeeldingen met minimale code. De bibliotheek integreert nauw samen met pandas DataFrames, waardoor het bijzonder effectief is voor data-analyse workflows.

Het biedt een interface op hoog niveau om aantrekkelijke plots te tekenen terwijl het automatisch veel stijldetails afhandelt.

De bibliotheek blinkt uit in drie belangrijke aspecten:

  • Het integreert naadloos met pandas DataFrames, waardoor gegevensmanipulatie eenvoudig is
  • Het wordt geleverd met ingebouwde statistische functies, waardoor aparte berekeningen overbodig zijn
  • Het past standaard professioneel ogende thema’s en kleurenpaletten toe

Zo vereist Matplotlib meerdere regels code om een basisstatistische visualisatie te maken, terwijl Seaborn dezelfde taak kan volbrengen met één functieaanroep.

Voor staafdiagrammen voegt Seaborn specifieke krachtige functies toe zoals automatische gemiddeldeberekening, betrouwbaarheidsintervallen en geavanceerde behandeling van categorische variabelen – mogelijkheden die aanzienlijk meer code zouden vereisen in gewoon Matplotlib.

Waarom barplots gebruiken?

Barplots presenteren categorische data door middel van verticale of horizontale balken, waarbij de lengte een numerieke waarde vertegenwoordigt. Dit maakt ze ideaal voor het vergelijken van waarden tussen verschillende groepen of categorieën. In data-analyse helpen staafdiagrammen bij het visualiseren van enquêteresultaten, marktaandelen, prestatie-indicatoren en verkoopverdelingen.

Belangrijke voordelen zijn:

  • Duidelijke vergelijking van hoeveelheden tussen categorieën
  • Ingebouwde statistische functies (gemiddelde, mediaan, betrouwbaarheidsintervallen)
  • Effectieve weergave van gegroepeerde gegevens
  • Eenvoudige maar informatieve visuele elementen
  • Eenvoudige aanpassingsopties voor professionele presentaties

Snelle installatie

Om te beginnen met het maken van staafdiagrammen met Seaborn, moeten we onze Python-omgeving instellen. Zo ga je van start:

Laten we eerst de benodigde pakketten installeren, zoals hieronder weergegeven:

pip install seaborn pandas numpy

Nu hebben we al onze visualisatietools klaar voor gebruik. Laten we de bibliotheken importeren die we nodig hebben, zoals hieronder weergegeven:

# Voor het maken van statistische visualisaties import seaborn as sns # Voor gegevensmanipulatie en -analyse import pandas as pd # Voor numerieke bewerkingen import numpy as np

We kunnen onze plots er beter uit laten zien met enkele stijlinstellingen, als volgt:

# Schone witte stijl sns.set_style("white")

De wit-stijl verwijdert rasterlijnen en zorgt ervoor dat de plots er goed uitzien op de meeste schermen. In de volgende secties zullen we kijken naar het maken van staafdiagrammen en hoe deze te verbeteren.

Het maken van basis Seaborn staafdiagrammen

Een staafdiagram is perfect voor het visualiseren van relaties tussen categorische en numerieke variabelen. Het toont puntinschattingen (zoals het gemiddelde of de mediaan) en de onzekerheid rond die schattingen met behulp van foutbalken. Laten we eens kijken naar de basisstructuur van de seaborn barplot.

Syntax en parameters

De sns.barplot() functie in Seaborn biedt een eenvoudige manier om statistische staafdiagrammen te maken. De basisstructuur van de .barplot() functie ziet er als volgt uit:

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 )

Deze parameters geven ons controle over welke gegevens we weergeven en hoe we ze weergeven. De data parameter neemt uw DataFrame, terwijl x en y specificeren welke kolommen te gebruiken voor de categorieën en waarden. De estimator stelt u in staat om te kiezen welke statistische functie toe te passen (standaard gemiddelde), en errorbar controleert hoe onzekerheid wordt weergegeven. U kunt ook schakelen tussen verticale en horizontale oriëntaties met behulp van de orient parameter.

Laten we kijken naar hoe we effectieve staafdiagrammen kunnen maken met behulp van de ingebouwde tips dataset van Seaborn, die informatie bevat over restaurantrekeningen en fooien.

Voorbeeld: Een eenvoudige dataset visualiseren

We zullen het fooiengedrag op verschillende dagen van de week bekijken met behulp van de tips dataset. Deze dataset bevat informatie over restaurantrekeningen, inclusief de dag van de week, het totale rekeningbedrag, het fooibedrag en andere variabelen.

# Vereiste bibliotheken importeren en dataset laden import seaborn as sns tips = sns.load_dataset("tips") # Een basis staafdiagram maken dat gemiddelde fooien per dag toont sns.barplot(data=tips, x="day", y="tip")

Uitvoer:

Onze code heeft de bovenstaande visualisatie gemaakt waarbij elke staaf het gemiddelde fooibedrag voor een andere dag van de week vertegenwoordigt. De hoogte van elke staaf toont de gemiddelde fooi, terwijl de zwarte lijnen (foutbalken) het 95% betrouwbaarheidsinterval aangeven – wat ons inzicht geeft in zowel het typische fooibedrag als de variatie ervan.

We kunnen ook de fooi-patronen op verschillende maaltijdtijden onderzoeken:

# Een staafdiagram maken dat gemiddelde fooien per tijd van de dag toont sns.barplot(data=tips, x="time", y="tip")

Uitvoer:

Deze grafiek onthult het verschil in fooi-gedrag tussen lunch- en dinerdiensten. De hoogte van elke staaf vertegenwoordigt het gemiddelde fooi-bedrag voor dat tijdstip van de dag, met foutbalken die de variabiliteit in fooi-gedrag tonen. Dit soort visualisatie maakt het gemakkelijk om patronen te herkennen en groepen in één oogopslag te vergelijken.

Deze basis staafdiagrammen bieden een fundament voor meer complexe visualisaties. In de volgende sectie zullen we zien hoe we deze grafieken kunnen verbeteren met kleuren, groeperingen en andere aanpassingen om informatieve en visueel aantrekkelijke visualisaties te creëren.

Staafdiagrammen verbeteren met aanpassingen

Het toevoegen van visuele verbeteringen aan onze staafdiagrammen kan helpen om onze gegevens boeiender en gemakkelijker te begrijpen te maken. Laten we de verschillende manieren bekijken om staafdiagrammen aan te passen met behulp van de fooi dataset.

Kleuren toevoegen aan staafdiagrammen

Seaborn biedt verschillende manieren om kleur toe te voegen aan je staafdiagrammen, waardoor ze visueel aantrekkelijker en informatiever worden. We kunnen één enkele kleur voor alle staven gebruiken of kleurgecodeerde groepen maken,

De color parameter stelt een enkele kleur in voor alle staven, terwijl de palette je in staat stelt een kleurenschema op te geven wanneer je gegevens meerdere groepen hebben. Seaborn wordt geleverd met veel ingebouwde kleurenschema’s die goed werken voor verschillende soorten gegevens.

We kunnen een eenvoudige staafdiagram maken met een enkele kleur met de color parameter zoals hieronder weergegeven:

# Laad de tips dataset als je dat nog niet hebt gedaan import seaborn as sns tips = sns.load_dataset("tips") # Staafdiagram met enkele kleur sns.barplot(data=tips, x="day", y="tip", color="skyblue")

Uitvoer:

We kunnen een staafdiagram maken met meerdere kleuren met de palette parameter zoals hieronder weergegeven:

# Laad de tips dataset als je dat nog niet hebt gedaan import seaborn as sns tips = sns.load_dataset("tips") # Gebruikmakend van een andere kleurenpalet sns.barplot(data=tips, x="day", y="tip", palette="Set2")

Uitvoer:

Seaborn staafdiagram met meerdere kolommen

Een van de krachtigste functies van Seaborn staafdiagrammen is de mogelijkheid om relaties tussen meerdere variabelen weer te geven met de hue parameter. Dit creëert gegroepeerde staven die vergelijkingen vergemakkelijken.

Laten we de tips vergelijken over beide dagen en maaltijdtijden met behulp van de hue parameter zoals hieronder weergegeven:

# Laad de tips dataset in als je dat nog niet hebt gedaan import seaborn as sns tips = sns.load_dataset("tips") # Maak een gegroepeerde staafdiagram die tips per dag en tijd laat zien sns.barplot( data=tips, x="day", y="tip", hue="time" )

Output:

Het bovenstaande diagram toont twee staven – één voor lunch en één voor diner. Deze groepering helpt ons niet alleen te zien hoe tips variëren per dag, maar ook hoe ze verschillen tussen maaltijdtijden.

Seaborn gestapeld staafdiagram maken

Gestapelde staafdiagrammen zijn uitstekend om de samenstelling van verschillende categorieën te laten zien. Hoewel Seaborn geen directe functie heeft voor gestapelde staafdiagrammen, kunnen we het combineren met matplotlib om effectieve gestapelde visualisaties te maken.

Deze aanpak maakt gebruik van de statistische functionaliteit van Seaborn terwijl het de stapelmogelijkheden van matplotlib gebruikt. Als voorbeeld, in de tips dataset, laten we zien hoe tips verdeeld zijn tussen rokers en niet-rokers over verschillende dagen.

Laten we beginnen met het importeren van de benodigde bibliotheken voor onze visualisatie:

# Vereiste bibliotheken importeren import seaborn as sns import matplotlib.pyplot as plt import numpy as np

Nu zullen we onze dataset laden met informatie over restauranttips:

# Laad de tips dataset tips = sns.load_dataset("tips")

We zullen een figuur maken met passende afmetingen voor onze visualisatie:

# Maak figuur en as plt.figure(figsize=(10, 4))

Vervolgens zullen we de gemiddelde fooien voor rokers en niet-rokers berekenen over verschillende dagen:

# Bereken waarden voor stapelen # Filter rokers, groepeer per dag en bereken gemiddelde fooien smoker_means = tips[tips['smoker']=='Yes'].groupby('day')['tip'].mean() # Filter niet-rokers, groepeer per dag en bereken gemiddelde fooien non_smoker_means = tips[tips['smoker']=='No'].groupby('day')['tip'].mean()

Vervolgens zullen we de basisparameters instellen voor onze gestapelde balken zoals hieronder weergegeven:

# Teken de gestapelde balken met behulp van matplotlib days = smoker_means.index width = 0.8

Nu zullen we de onderste laag van onze gestapelde balken voor niet-rokers maken:

# Maak onderste balken (niet-rokers) plt.bar(days, non_smoker_means, width, label='Non-smoker', color=sns.color_palette()[0])

We zullen de bovenste laag toevoegen voor de fooien van rokers:

# Maak bovenste balken (rokers) plt.bar(days, smoker_means, width, bottom=non_smoker_means, label='Smoker', color=sns.color_palette()[1])

Laten we een schone stijl instellen zonder rasterlijnen met behulp van Seaborn-styling:

# Voeg Seaborn-styling toe sns.set_style("white")

Tenslotte zullen we onze voltooide gestapelde staafdiagram weergeven:

# Toon de plot plt.show()

Output:

De resulterende plot toont de gemiddelde fooien van rokers gestapeld bovenop de fooien van niet-rokers voor elke dag, waardoor het gemakkelijk is om zowel de totale fooien als de bijdrage van elke groep te vergelijken.

Met deze workaround kunnen we:

  • Seaborn’s aantrekkelijke visuele stijl behouden
  • Onze balken stapelen om de samenstelling weer te geven
  • De statistische aard van onze visualisatie behouden
  • Seaborn’s kleurenpaletten gebruiken voor consistentie

Geavanceerde functies en tips

Nu we de basis en aanpassingen hebben behandeld, laten we kijken naar enkele geavanceerde functies die onze staafdiagrammen informatiever en professioneler kunnen maken. We blijven de tips-dataset gebruiken om deze geavanceerde technieken te demonstreren.

Annoteren van staafdiagrammen

Waardenlabels aan de staven toevoegen kan je visualisaties preciezer en informatiever maken. Laten we een staafdiagram maken dat de exacte tipwaarden boven elke staaf toont.

Eerst importeren we onze bibliotheken en bereiden we onze gegevens voor:

# Vereiste bibliotheken importeren import seaborn as sns import matplotlib.pyplot as plt # Laad en bereid de tips-dataset voor tips = sns.load_dataset("tips")

Creëer ons staafdiagram met statistische waarden:

# Maak het basis staafdiagram ax = sns.barplot(data=tips, x="day", y="tip”, errorbar=None) # Create barplot and store the axes object for annotations

Vervolgens voegen we waardenlabels toe aan de bovenkant van elke staaf, zoals hieronder weergegeven:

# Verkrijg de hoogte van elke staaf bars = ax.containers[0] # Get the bar container object heights = [bar.get_height() for bar in bars] # Extract height of each bar # Voeg tekstannotaties toe bovenop elke staaf 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 )

Uitvoer:

Beheren van assen en schalen

Bij het maken van staafdiagrammen helpt het aanpassen van de assen om je gegevens leesbaarder en impactvoller te maken. Laten we zien hoe we de aslimieten, labels en ticks kunnen aanpassen met behulp van de functies van Seaborn.

Eerst importeren we onze bibliotheek en laden we de dataset die we nodig hebben voor onze visualisatie:

# Vereiste bibliotheken importeren import seaborn as sns # Laad en bereid de tips-dataset voor tips = sns.load_dataset("tips")

We kunnen een staafdiagram maken met aangepaste labels en dagen in een specifieke volgorde. De order parameter stelt ons in staat om precies aan te geven hoe we onze dagen gerangschikt willen hebben op de x-as:

# Maak een staafdiagram met aslabels ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', ‘Fri', 'Sun'] # Set custom order for days )

Om onze plot informatiever te maken, kunnen we beschrijvende labels toevoegen voor beide assen met behulp van de set methode:

# Stel beschrijvende aslabels in ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' )

Om onze visualisatie verder te verfijnen, kunnen we specifieke grenzen en tickmarks instellen. De ylim parameter controleert het bereik van de y-as, terwijl xticks en yticks ons in staat stellen precies aan te geven waar we onze tickmarks willen laten verschijnen:

# Pas aslimieten en tickmarks aan 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 )

Om al deze wijzigingen in de grafiek op te nemen, moeten we ze allemaal tegelijk uitvoeren en niet één voor één. De volledige code is hieronder weergegeven:

# Vereiste bibliotheken importeren import seaborn as sns # Laad en bereid de tips dataset voor tips = sns.load_dataset("tips") # Maak een staafdiagram met aslabels ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', 'Fri', 'Sun'] # Set custom order for days ) # Stel beschrijvende aslabels in ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' ) # Pas de aslimieten en ticks aan 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 )

Uitvoer:

De resulterende plot toont de fooi per dag met duidelijke labels, geschikte schalen en goed georganiseerde ticks, waardoor het gemakkelijk is om de gegevens te lezen en te interpreteren.

Foutbalken opnemen

Foutbalken helpen de onzekerheid of variabiliteit in uw gegevens te visualiseren. Seaborn biedt verschillende opties voor het toevoegen van foutbalken aan uw staafdiagrammen, waaronder betrouwbaarheidsintervallen en standaarddeviatie.

Eerst importeren we onze bibliotheek en laden we de dataset die we nodig hebben voor onze visualisatie:

# Vereiste bibliotheken importeren import seaborn as sns # De tips dataset laden en voorbereiden tips = sns.load_dataset("tips")

Standaard toont Seaborn 95% betrouwbaarheidsintervallen. We kunnen dit aanpassen met behulp van de ‘errorbar’ parameter om verschillende soorten statistische schattingen te tonen:

# Staafdiagram maken met betrouwbaarheidsintervallen ax = sns.barplot( data=tips, x="day", y="tip", errorbar="ci", # Show confidence interval capsize=0.1 # Add small caps to error bars )

Output:

We kunnen ook de standaardafwijking tonen in plaats van betrouwbaarheidsintervallen, wat helpt bij het visualiseren van de spreiding van onze gegevens:

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

Output:

Soms willen we de foutbalken volledig verwijderen voor een schonere uitstraling:

# Maak staafdiagram zonder foutbalken ax = sns.barplot( data=tips, x="day", y="tip", errorbar=None # Remove error bars )

Output:

De resulterende grafieken laten zien hoe verschillende soorten foutbalken ons kunnen helpen de variabiliteit in onze fooigegevens over verschillende dagen van de week te begrijpen.

Praktische toepassingen van Seaborn Barplots

Barplots zijn veelzijdige tools in datavisualisatie, vooral handig wanneer u waarden over verschillende categorieën moet vergelijken of meerdere variabelen tegelijk moet analyseren. Laten we kijken naar twee veelvoorkomende toepassingen waarin Seaborn barplots uitblinken.

Seaborn barplots blinken uit in het onthullen van patronen in categorische gegevens, vooral bij het analyseren van metingen over verschillende groepen. Door zowel de centrale neiging als onzekerheid te tonen, helpen barplots bij het identificeren van significante verschillen tussen categorieën.

Dit maakt ze ideaal voor het analyseren van klantgedrag, productprestaties of enquêteresultaten waarbij je waarden over verschillende groepen moet vergelijken.

Het vergelijken van meerdere variabelen

Wanneer onze analyse meerdere factoren omvat, kunnen de barplots van Seaborn complexe relaties in onze gegevens benadrukken. Het gebruik van functies zoals groepering (hue) of stapelen helpt om verschillende variabelen tegelijkertijd te vergelijken, waardoor het gemakkelijker wordt om patronen en interacties tussen verschillende aspecten van onze gegevens te herkennen.

Conclusie

Seaborn barplots slaan de juiste balans tussen eenvoud en statistisch inzicht. De intuïtieve syntaxis van de bibliotheek in combinatie met robuuste statistische functies maken het een essentieel instrument voor gegevensvisualisatie. Van basisvergelijkingen tussen categorieën tot geavanceerde gegroepeerde visualisaties helpen barplots effectief gegevenspatronen bloot te leggen en te communiceren.

Klaar om je vaardigheden op het gebied van gegevensvisualisatie naar een hoger niveau te tillen? Hier is wat je hierna kunt verkennen:

Wil je je Seaborn-vaardigheden naar een hoger niveau tillen? Schrijf je in voor de Gevorderde Gegevensvisualisatie met Seaborn cursus.

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