Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Uitwerking

Als de meetdata zijn opgeslagen, ontstaan er bestanden met veel datapunten. Om inzicht te krijgen in de gemeten waarden, moeten deze data op een duidelijke manier worden weergegeven.

Thonny

Belanrijk in Thonny is er op te letten welke Python versie je gebruikt. Voor de analyse van de data is geen microcontroller nodig, maar juist een scherm. Micro-python is hier dus niet geschikt. Let er op dat rechts onderin Thonny nu de ‘Local Python’ interpreter gekozen is.

Metingen uitgezet tegen de tijd

Een mogelijkheid is om de gemeten waarden uit te zetten tegen de tijd. Op de x-as (horizontale as) staat dan de tijd. Op de y-as (verticale as) staan bijvoorbeeld de gemeten fijnstofconcentratie, temperatuur en/of relatieve luchtvochtigheid. In het voorbeeld figuur worden er 3 figuren aangemaakt, elk met dezelfde tijds-as. Hierdoor is het makkelijk om verschillende variabelen met elkaar op hetzelfde tijdstip te vergelijken.

analyse_plot_data.py
import numpy as np
import matplotlib.pyplot as plt

# lees data
# 1e rij is de beschrijving
data = np.loadtxt('data/meting_001.csv',
                  delimiter=';',
                  skiprows=1)

# creeer een tijds-as
t = np.asarray(data[:,0], dtype='datetime64[s]')

t = t - t[0] # laat de meting op t=0 seconden beginnen

# maak 3 figuren aan
fig, ax = plt.subplots(3, sharex=True, figsize=(10,15))
ax[0].plot(t, data[:,1], label='PM 1.0')
ax[0].plot(t, data[:,2], label='PM 2.5')
ax[0].plot(t, data[:,3], label='PM 4.0')
ax[0].plot(t, data[:,4], label='PM 10')
ax[1].plot(t, data[:,5], label='Temperatuur')
ax[2].plot(t, data[:,6], label='Rel. Luchtvochtigheid')
# teken grid, assen
ax[0].grid()
ax[1].grid()
ax[2].grid()
plt.xlabel('tijd [s]')
ax[0].set_ylabel('fijnstof [ug/m]')
ax[0].legend(loc=0)
ax[1].set_ylabel('temperatuur [degC]')
ax[1].legend(loc=0)
ax[2].set_ylabel('rel. luchtvochtigheid [%]')
ax[2].legend(loc=0)
plt.gcf().autofmt_xdate()

# sla het figuur op
plt.savefig('analyse_data.jpg')
plt.show()

De grafiek ziet er dan zo uit:

Door zo van elke meting een grafiek te maken kan je verschillen bestuderen. Is een meting op een ander moment (of locatie) heel anders? Zijn de omstandigheden (temperatuur, luchtvochtigheid) voor beide meetseries gelijk?