Ga naar hoofdinhoud

Python-bargrafiek: Beheers basis- en meer geavanceerde technieken

Maak opvallende bargrafieken met Matplotlib, Seaborn, Plotly, Plotnine en Pandas. Verken typen staafdiagrammen, van eenvoudige verticale en horizontale balken tot complexere gegroepeerde en gestapelde lay-outs.
Bijgewerkt 2 okt 2026  · 7 min lezen

Verken met AI

ChatGPTClaudePerplexity

In dit artikel neem ik je mee langs bargrafieken in Python met de bekendste libraries: Matplotlib, Seaborn, Plotly, Plotnine en Pandas. Je kunt de visuals bekijken en kiezen welke library je het prettigst vindt. Voor elke methode begin ik met de basis voor het maken van eenvoudige bargrafieken en ga ik daarna stap voor stap in op aanpassingstechnieken.

Ik ben zo volledig en duidelijk mogelijk, maar onthoud dat bargrafieken slechts één onderdeel zijn van data-analyse en data science. Wil je een breed overzicht, oefenen met echte datasets, een felbegeerd certificaat behalen en een carrière in het vak starten, schrijf je dan vandaag nog in voor onze Associate Data Scientist in Python-carrièreroute.

Manieren om een Python-bargrafiek te maken 

We bekijken hoe je bargrafieken maakt en aanpast met enkele van de populairste Python-libraries. Elke library biedt unieke functies en verschillende niveaus van aanpasbaarheid.

Maak een staafdiagram met Matplotlib

Ik begin met Matplotlib, een fundamentele plottinglibrary in Python met veel aanpassingsopties.

Basis-bargrafieken

Om te starten met Matplotlib importeer je de benodigde libraries. De pyplot-module uit Matplotlib biedt functies voor het maken van grafieken. In dit voorbeeld gebruiken we voorbeelddata met het aantal mensen dat verschillende visualisatielibraries verkiest. De lijst library bevat de namen van de libraries, die als labels op de x-as verschijnen, en de lijst chosen_by bevat het overeenkomstige aantal liefhebbers, weergegeven als balkhoogtes op de y-as.

import matplotlib.pyplot as plt
# Number of preferences for different libraries
library = ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine']
chosen_by = [2500, 1800, 3000, 2200]

Een verticale bargrafiek maak je door de functie plt.bar() aan te roepen met de namen van de libraries en de voorkeursdata. Ik kies de kleur skyblue. Met plt.xlabel(), plt.ylabel() en plt.title() voeg je labels toe aan de x- en y-as en stel je een titel in. Tot slot toont plt.show() de grafiek.

# 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()

eenvoudig Python-staafdiagram met Matplotlib

Op vergelijkbare wijze kun je met plt.barh() een horizontale bargrafiek maken. Hiervoor gebruik ik een lichtgroene kleur voor de 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()

Python-staafdiagram met Matplotlib

Geavanceerde aanpassingen

Matplotlib biedt een breed scala aan aanpassingen, zoals annotaties toevoegen en aslabels, titels en legenda's aanpassen. Je kunt bijvoorbeeld annotaties aan elke balk toevoegen met plt.text(), waarmee je tekst op opgegeven coördinaten plaatst.

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()

staafdiagram met Matplotlib

In de code hierboven wordt plt.text() gebruikt om het aantal liefhebbers boven elke balk te tonen. De functie enumerate() geeft de index en waarde van elke balk, zodat de tekst correct wordt gepositioneerd.

Gegroepeerde en gestapelde bargrafieken

Om gegroepeerde en gestapelde bargrafieken met Matplotlib te maken, kun je extra parameters gebruiken om meerdere categorieën te tonen, zoals verschillende regio's of demografieën. Stel dat je data hebt over de populariteit van visualisatielibraries in verschillende regio's. Voor gegroepeerde bargrafieken definieer je aparte datasets per regio en gebruik je bar_width om de afstand en uitlijning van de balken te regelen, zodat elke groep naast elkaar staat voor een makkelijke vergelijking.

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()

gegroepeerd Python-staafdiagram met Matplotlib

In dit voorbeeld maakt x = np.arange(len(library)) een array met posities voor de balken. De functie plt.bar() wordt twee keer gebruikt om de balken per regio te maken en met plt.xticks() stel je de labels op de x-as in. De functie plt.legend() toont een legenda om de regio's te onderscheiden.

Voor een gestapelde bargrafiek kun je de parameter bottom gebruiken om de ene dataset op de andere te stapelen. Zo kun je het aantal liefhebbers uit verschillende regio's gestapeld per library visualiseren.

# 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()

gestapeld Python-staafdiagram met Matplotlib

In deze gestapelde bargrafiek vertegenwoordigt enthusiasts_south de data voor liefhebbers in het zuiden, terwijl enthusiasts_north de basisdata is voor het noorden. De functie plt.bra() wordt eerst aangeroepen om de balken voor het noorden te maken en daarna nog eens om de balken voor het zuiden erbovenop te stapelen.

Voor een uitgebreidere uitleg over het gebruik van de Python-library Matplotlib kun je onze cursus Introduction to Data Visualization with Matplotlib volgen. Er is ook onze Matplotlib Cheat Sheet, die het proces in zes basisstappen opdeelt.

Bargrafieken maken met Seaborn 

Seaborn is een visualisatielibrary boven op Matplotlib die het maken van mooie bargrafieken vereenvoudigt.

Basis-bargrafieken

Met Seaborns functie barplot() maak je eenvoudig basis-bargrafieken met minimale code. Importeer eerst de Seaborn-library en maak een dictionary.

import seaborn as sns
data = {'Library': library, 'Chosen by': chosen_by}

Gebruik vervolgens de functie sns.barplot() om de bargrafiek te maken, waarbij je de x- en y-variabelen en de databron aangeeft. Hier gebruik ik het kleurenpalet viridis.

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()

eenvoudig Python-staafdiagram met Seaborn

Je kunt ervoor kiezen geen waarde aan palette toe te voegen en dan krijg je een uniforme kleur in je grafiek, of — nog beter — een kleur aan de bargrafiek toekennen. In dit geval gebruik ik een hexcode:

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()

Python-staafdiagram met Seaborn

Geavanceerde aanpassing

Seaborn biedt natuurlijk ook uitgebreide aanpassingsopties, waaronder kleuren en annotaties. Je kunt bijvoorbeeld annotaties toevoegen aan de bargrafiek, net zoals in Matplotlib.

# 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()

Python-staafdiagram met Seaborn

In dit voorbeeld verandert de parameter palette='viridis' het kleurenpalet van de balken en voegt de functie plt.text() annotaties toe aan elke balk.

Je kunt onze cursus Introduction to Data Visualization with Seaborn volgen voor veel meer details. Wil je je Seaborn-bargrafiek extra mooi maken, gebruik dan onze Seaborn-kleurenpaletten: snelle gids voor het kiezen van kleuren voor goede ideeën. 

Bargrafieken maken met Plotly

Vervolgens komt Plotly, een library die bekendstaat om interactieve en dynamische visualisaties, waaronder bargrafieken.

Basis-bargrafieken

Een basis-bargrafiek met Plotly maak je met de module graph_objects. We importeren de benodigde module en maken een bargrafiek met een hemelsblauwe kleur voor de balken.

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()

eenvoudig Python-staafdiagram met Plotly

Geavanceerde aanpassing

Plotly biedt manieren om de interactiviteit en uitstraling van bargrafieken te verbeteren. Zo kun je annotaties aan de balken toevoegen met de functie fig.add_annotation().

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()

Python-staafdiagram met Plotly

Dynamische en interactieve bargrafieken

Plotly kan dynamische bargrafieken maken die realtime updaten, ideaal voor dashboards. Met Plotly Express, een high-level interface voor Plotly, kun je met minimale code interactieve bargrafieken maken.

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()

interactief Python-staafdiagram met Plotly

In dit voorbeeld laadt de functie px.data.gapminder() een voorbeelddataset van Plotly. De functie px.bar() maakt een interactieve bargrafiek met de opgegeven x- en y-variabelen, kleur, hover-naam en titel. We hebben een uitgebreide cursus bij DataCammp als je meer wilt zien: Introduction to Data Visualization with Plotly. 

Bargrafieken maken met Plotnine

Plotnine is een implementatie van de grammar of graphics in Python, geïnspireerd op ggplot2 in R. Het biedt een declaratieve manier om complexe grafieken te maken door verschillende plotelementen te combineren.

Basis-bargrafieken

Om met Plotnine te beginnen, importeer je de benodigde libraries en maak je een DataFrame. Definieer daarna een ggplot-object, voeg een geom_bar-laag toe en specificeer de esthetiek.

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')

eenvoudig Python-staafdiagram met Plotnine

In dit voorbeeld stelt aes(x='Library', y='Chosen by') de x- en y-esthetiek van de grafiek in. Het deel geom_bar(stat='identity', fill='skyblue') maakt een bargrafiek met een hemelsblauwe vulkleur.

Geavanceerde aanpassing

Je kunt aanpassen met Plotnines gelaagde aanpak. Je kunt annotaties, aslabels, titels en legenda's toevoegen.

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'))

Python-staafdiagram met Plotnine

Gegroepeerde en gestapelde bargrafieken 

Plotnine ondersteunt ook gegroepeerde en gestapelde bargrafieken. Voor gegroepeerde bargrafieken definieer je eerst een categorische variabele om op te groeperen.

# 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'))

gegroepeerd Python-staafdiagram met Plotnine

Voor gestapelde bargrafieken kun je position = 'stack' gebruiken.

# 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'))

gestapeld Python-staafdiagram met Plotnine

Je ziet dat in deze voorbeelden position = 'dodge' gegroepeerde balken maakt, terwijl position = 'stack' de balken stapelt.

Bargrafieken maken met Pandas

Last but not least: Pandas. Pandas biedt een handige manier om rechtstreeks vanuit DataFrames bargrafieken te maken; het is dus een snelle en eenvoudige optie voor basisgrafieken.

Basis-bargrafieken

Voor een bargrafiek in Pandas kun je de functie plot.bar() op een DataFrame gebruiken. 

import pandas as pd
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
                     'Chosen by': [2500, 1800, 3000, 2200]})

Maak daarna een bargrafiek met plot.bar().

# 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()

eenvoudig Python-staafdiagram met Pandas

Geavanceerde aanpassing

Pandas laat aanpassingen aan bargrafieken toe via extra parameters en integratie met 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()

Python-staafdiagram met Pandas

In dit voorbeeld voegt ax.bar_label(i, label_type='edge') annotaties toe aan de balken, waardoor het aantal boven elke balk wordt weergegeven.

Gegroepeerde en gestapelde bargrafieken

Gegroepeerde en gestapelde bargrafieken maken in Pandas is eenvoudig. Voor gegroepeerde bargrafieken moet je het DataFrame pivots zodat er aparte kolommen per groep zijn.

# 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()

gegroepeerd Python-staafdiagram met Pandas

Voor gestapelde bargrafieken gebruik je 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()

gestapeld Python-staafdiagram met Pandas

Best practices voor het ontwerpen van effectieve Python-bargrafieken

Bargrafieken maken is eenvoudig, maar effectieve en inzichtelijke grafieken ontwerpen vraagt om aandacht voor detail. De volgende richtlijnen helpen je bargrafieken te maken die het verhaal van je data effectief overbrengen.

  • Veelvoorkomende fouten vermijden: Vermijd overbelasting met informatie om je grafieken duidelijk en effectief te houden. Beperk je tot het essentiële om rommel te voorkomen. Gebruik consistente schalen op de assen. Zorg dat de as bij nul begint om kijkers niet te misleiden met overdreven verschillen.
  • Kleuren en accenten kiezen: Kies kleuren die betekenis geven aan je data, zoals rood voor negatieve waarden of groen voor positieve. Houd een consistent kleurenschema aan over verwante grafieken, zodat de lezer de lijn kan volgen. Gebruik kleur om de aandacht op belangrijke inzichten te vestigen.
  • Balken ordenen voor meer duidelijkheid: Orden balken logisch op basis van de context, bijvoorbeeld chronologisch voor tijdsdata of in af- of oplopende volgorde om trends te benadrukken. Groepeer verwante balken en gebruik kleur of ruimte om groepen te scheiden.

Conclusie

Het maken en aanpassen van bargrafieken beheersen is een essentiële vaardigheid voor iedere dataprofi. Door de richtlijnen en best practices in dit artikel te volgen, kun je duidelijke, informatieve en visueel aantrekkelijke bargrafieken maken die je data-inzichten effectief overbrengen. Zo presenteer je je data effectiever en neem je beter onderbouwde beslissingen.

Wil je je Python-datavisualisatievaardigheden blijven oefenen, bekijk dan onze cursus Intro to Python for Data Science, een startpunt voor beginners. Of bekijk onze Python Programming-skill track voor een compleet leerpad om Python te beheersen.


Samuel Shaibu's photo
Author
Samuel Shaibu
LinkedIn

Ervaren dataprofessional en schrijver die graag ambitieuze experts in de dataruimte wil versterken.

Python-barplot: veelgestelde vragen

Wat is een Python-bargrafiek en waarom is die nuttig?

Een bargrafiek (bar plot) toont categorische data met rechthoekige balken, waarvan de lengte of hoogte overeenkomt met de waarde van de categorie. Het is handig om categorieën te vergelijken, verdelingen te visualiseren en trends of uitschieters te spotten.

Hoe kies ik tussen een verticale en horizontale Python-bargrafiek?

Gebruik een verticale bargrafiek bij korte of makkelijk leesbare labels, en kies een horizontale bargrafiek bij langere labels of veel categorieën om rommel te voorkomen.

Hoe pas ik de kleuren van de balken in mijn grafiek aan?

Je kunt de balkkleuren aanpassen om je grafiek aantrekkelijker te maken of te laten aansluiten bij een specifiek kleurenschema. In Matplotlib gebruik je de parameter color:

plt.bar(categories, values, color=['red', 'green', 'blue'])
plt.show()

Hoe kan ik in Python de balken in mijn bargrafiek sorteren?

Sorteren van de balken kan helpen om de belangrijkste of minst belangrijke categorieën te benadrukken. Je kunt je data voor het plotten sorteren:

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()

Kan ik interactieve Python-bargrafieken maken met Plotly?

Ja, met Plotly kun je interactieve bargrafieken maken. Hier is een voorbeeld met 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()
Onderwerpen
Python
Data-analyse

Leer meer over Python en bargrafieken met DataCamp

Cursus

Introductie tot Python

4 uur
7M
Leer de basis van data-analyse met Python in 4 uur. Deze online cursus laat je kennismaken met de Python-interface en populaire pakketten.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken