Ga naar hoofdinhoud

Lijndiagram van tijdreeksen in Matplotlib

Deze tutorial laat zien hoe je lijndiagrammen van tijdreeksen maakt en aanpast in matplotlib.
Bijgewerkt 2 okt 2026  · 8 min lezen

Verken met AI

ChatGPTClaudePerplexity

Een tijdreeks is een verzameling waarnemingen die chronologisch op tijd zijn geordend. Deze waarnemingen worden vaak (maar niet per se) op regelmatige tijdsintervallen vastgelegd. Tijdreeksen worden veel gebruikt in bankwezen, trading, marketing, wetenschap en andere sectoren. De meest gebruikelijke visuele weergave van tijdreeksgegevens is een lijndiagram, waarbij de tijd op de x-as staat en de gemeten waarde op de y-as.

In deze tutorial verkennen we hoe je lijndiagrammen van tijdreeksen maakt en aanpast in matplotlib, een primaire Python-plotbibliotheek.

Aan de slag met tijdreeksplotten in matplotlib

Bibliotheken importeren en de data laden

We importeren eerst de benodigde Python-bibliotheken en laden de data – een Kaggle-dataset Daily Exchange Rates per Euro 1999-2023. We voeren ook wat basisopschoning van de data uit:

import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
from datetime import datetime

df = pd.read_csv('euro-daily-hist_1999_2022.csv')
df = df.iloc[:, [0, 4, 28, -2]]
df.columns = ['Date', 'CAD', 'NZD', 'USD']

for col in ['CAD', 'NZD', 'USD']:
    df = df[df[col] != '-']
    df[col] = pd.to_numeric(df[col])
   
df = df[df['Date'] >= '2022-12-01'].reset_index(drop=True)
print(df.head(3))
print(f'\nThe date range: {df.Date.min()}/{ df.Date.max()}')

Output:

Date     CAD     NZD     USD
0  2023-01-27  1.4479  1.6759  1.0865
1  2023-01-26  1.4568  1.6799  1.0895
2  2023-01-25  1.4544  1.6792  1.0878

The date range: 2022-12-01/2023-01-27

Datum/tijd-strings converteren naar datetime-objecten

Om efficiënt met tijdreeksen te werken, moeten we datum- of tijdstrings omzetten naar datetime-objecten met de functie pandas.to_datetime:

df['Date'] = pd.to_datetime(df['Date'])
print(df['Date'].dtypes)

Output:

datetime64[ns]

Als je een opfrisser nodig hebt over werken met tijdreeksen in Python, dan is de cursus Manipulating Time Series Data in Python mogelijk nuttig.

Een datetime-kolom instellen als dataframe-index

Laten we nu de kolom Date als dataframe-index instellen met de methode set_index:

df = df.set_index('Date')
print(df.head(3))

Output:

              CAD     NZD     USD
Date                             
2023-01-27  1.4479  1.6759  1.0865
2023-01-26  1.4568  1.6799  1.0895
2023-01-25  1.4544  1.6792  1.0878

Een basislijndiagram van tijdreeksen maken in matplotlib

Om een eenvoudig lijndiagram van een tijdreeks te maken, gebruiken we de standaardmethode matplotlib.pyplot.plot(x, y):

plt.plot(df.index, df['CAD'])

Output:

image1.png

Een lijndiagram met meerdere reeksen maken in matplotlib

Om een lijndiagram met meerdere tijdreeksen te maken, voeren we de matplotlib.pyplot.plot(x, y)-methode simpelweg het benodigde aantal keren uit: 

plt.plot(df.index, df['CAD'])
plt.plot(df.index, df['NZD'])
plt.plot(df.index, df['USD'])

image4.png

Met een for-lus maak je de bovenstaande code efficiënter:

for col in ['CAD', 'NZD', 'USD']:
    plt.plot(df.index, df[col])

Output: 

image4.png

Tijdreeksplots in matplotlib aanpassen

Om ons lijndiagram van tijdreeksen leesbaarder en aansprekender te maken, moeten we het aanpassen. We kunnen veelgebruikte matplotlib-instellingen toepassen, zoals het aanpassen van de afbeeldingsgrootte, het toevoegen en stylen van een titel en aslabels, het wijzigen van lijneigenschappen, het toevoegen en aanpassen van markers, enzovoort. Andere aanpassingen zijn specifiek voor lijndiagrammen van tijdreeksen, zoals het instellen van ticks en hun labels op de tijdas of het markeren van bepaalde perioden.

De figuur en assen aanpassen

Met standaardmethodes in matplotlib kunnen we de figuur en assen van een lijndiagram van tijdreeksen op allerlei manieren aanpassen, zoals beschreven in de commentaarregels in de code hieronder:

# Adjusting the figure size
fig = plt.subplots(figsize=(16, 5))

# Creating a plot
plt.plot(df.index, df['CAD'])

# Adding a plot title and customizing its font size
plt.title('EUR-CAD rate', fontsize=20)

# Adding axis labels and customizing their font size
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)

# Rotaing axis ticks and customizing their font size
plt.xticks(rotation=30, fontsize=15)

# Changing the plot resolution - zooming in the period from 15.12.2022 till 15.01.2023
plt.xlim(pd.Timestamp('2022-12-15'), pd.Timestamp('2023-01-15'))

Output: 

image8.png

Lijneigenschappen aanpassen

Net als bij gewone lijndiagrammen kun je de lijneigenschappen van een tijdreeksplot wijzigen, zoals lijnkleur, -stijl of -dikte:

plt.plot(df.index, df['CAD'], color='green', linestyle='dashed', linewidth=3)

Output:

image5.png

Markers toevoegen en aanpassen

Zoals bij elk lijndiagram kunnen we markers op een tijdreeksplot plaatsen en hun symbool, kleur, randkleur en grootte aanpassen:

plt.plot(df.index, df['CAD'], marker='o', markerfacecolor='yellow', markeredgecolor='red', markersize=8)

image9.png

Ticks op de tijdas instellen

Laten we eerst een basisplot van een tijdreeks in matplotlib maken met enkele essentiële aanpassingen:

fig = plt.subplots(figsize=(16, 5))
plt.plot(df.index, df['CAD'])
plt.title('EUR-CAD rate', fontsize=20)
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)
plt.xlim(df.index.min(), df.index.max())

Output: 

image7.png

We zien dat matplotlib standaard willekeurige ticks en bijbehorende labels toont. Soms wil je echter zelf bepalen welke ticks op de tijdas verschijnen. In dat geval geef je een lijst met de gewenste datums (of tijden) als strings of pandas-timestamps door aan de methode matplotlib.pyplot.xticks:

fig = plt.subplots(figsize=(16, 5))
plt.plot(df.index, df['CAD'])
plt.title('EUR-CAD rate', fontsize=20)
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)
plt.xlim(df.index.min(), df.index.max())

# Defining and displaying time axis ticks
ticks = ['2022-12-05', '2023-01-02', '2023-01-20']
plt.xticks(ticks)

Output: 

image6.png

Hierboven toonde matplotlib de geselecteerde ticks en labelde ze automatisch.

Als we alle ticks willen tonen, moeten we een lijst met de indices van de tijdreeks doorgeven aan de methode matplotlib.pyplot.xticks:

fig = plt.subplots(figsize=(16, 5))
plt.plot(df.index, df['CAD'])
plt.title('EUR-CAD rate', fontsize=20)
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)
plt.xlim(df.index.min(), df.index.max())

# Defining and displaying all time axis ticks
ticks = list(df.index)
plt.xticks(ticks, rotation=45)

Output: 

image2.png

Ticklabels op de tijdas aanpassen

De ticklabels op de tijdas in de bovenstaande plot kunnen overweldigend ogen. We kunnen ze formatteren om ze leesbaarder te maken. Hiervoor gebruiken we de klasse matplotlib.dates.DateFormatter en geven we een strftime-opmaakstring mee die aangeeft hoe we de datums/tijden willen weergeven. Vervolgens geven we deze formatter door aan de methode matplotlib.axis.XAxis.set_major_formatter:

fig, ax = plt.subplots(figsize=(16, 5))
plt.plot(df.index, df['CAD'])
plt.title('EUR-CAD rate', fontsize=20)
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)
plt.xlim(df.index.min(), df.index.max())
ticks = list(df.index)
plt.xticks(ticks, rotation=45)

# Formatting time axis tick labels
ax.xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%b %d'))

Output: 

image10.png

Deze documentatiepagina biedt een volledige lijst met alle mogelijke strftime-opmaakcodes.

Bepaalde perioden markeren

Soms willen we bepaalde perioden arceren in een lijndiagram van tijdreeksen. Daarvoor kunnen we de methode matplotlib.pyplot.axvspan gebruiken. Deze neemt twee vereiste argumenten: de begin- en eindtijdpunten van de periode van interesse in een datetime-formaat. De methode accepteert ook optionele parameters om het uiterlijk van het gemarkeerde gebied aan te passen, zoals de kleur, randkleur, transparantie, lijndikte of arceerpatroon.

Laten we deze techniek toepassen op de plot uit de vorige sectie:

fig, ax = plt.subplots(figsize=(16, 5))
plt.plot(df.index, df['CAD'])
plt.title('EUR-CAD rate', fontsize=20)
plt.xlabel('Date', fontsize=15)
plt.ylabel('Rate', fontsize=15)
plt.xlim(df.index.min(), df.index.max())
ticks = list(df.index)
plt.xticks(ticks, rotation=45)
ax.xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%b %d'))

# Highlighting the time period from 15.12.2022 to 1.01.2023 and customizing the shaded area
plt.axvspan(datetime(2022, 12, 15), datetime(2023, 1, 1), facecolor='yellow', alpha=0.5, hatch='/', edgecolor='red', linewidth=5)

Output: 

image11.png

Een matplotlib-lijndiagram van tijdreeksen opslaan naar een bestand

In plaats van een plot alleen weer te geven, kunnen we ervoor kiezen om een lijndiagram van een tijdreeks op te slaan als afbeeldingsbestand. Dat doen we met de methode matplotlib.pyplot.savefig en geven we de bestandsnaam mee. Laten we bijvoorbeeld teruggaan naar onze eerste basisplot:

plt.plot(df.index, df['CAD'])

# Saving the resulting plot to a file
plt.savefig('time series line plot.png')

image1.png

Hierboven hebben we de plot opgeslagen in een bestand met de naam time series line plot.png, dat zich op dezelfde locatie bevindt als ons huidige programma.

Conclusie

Samengevat hebben we in deze tutorial besproken hoe je lijndiagrammen van tijdreeksen maakt en aanpast in matplotlib, met zowel algemene matplotlib-methodes als meer geavanceerde technieken die specifiek zijn voor visualisaties van tijdreeksen.

Na het leren van deze basisvaardigheden wil je misschien dieper duiken in het werken met tijdreeksdata en de visualisatie ervan in Python. Overweeg in dat geval de volgende uitgebreide, beginnersvriendelijke en end-to-end bronnen:

Onderwerpen
Python
Datavisualisatie

Python-cursussen

Cursus

Introductie tot datavisualisatie met Matplotlib

4 uur
236.9K
Leer hoe je datavisualisaties kunt maken, aanpassen en delen met Matplotlib.
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