Visualisation de données

Depuis le début de ce cours, les affichages de nos scripts Python se résument à du texte. Mais heureusement, il existe des modules qui permettent d'enrichir le langage Python.

Le module matplotlib

Il s'agit du module historique de génération de graphiques en Python.

Si ce n'est pas déjà fait, vous devez installer ce module dans un terminal (invite de commandes sous Windows) en tapant la commande suivante :

Windows :

pip.exe install matplotlib

macOS ou Linux :

pip3 install matplotlib

Le module matplotlib permet de générer une grande variété de graphiques mais nous nous limiterons pour le moment au tracé de séries temporelles.

import matplotlib.pyplot as plt

x = [0, 1, 2, 3, 4, 5, 6]
y = [0, 1, 0, 1, 0, 1, 0] 
plt.plot(x, y)
plt.show()
exemple de graphique
Un exemple de graphique simple

Je vous recommande la lecture du chapitre Tracé de courbes du site CoursPython. Il regorge d'explications sur les fonctions qui permettent de personnaliser un graphique.

Exercice

Écrivez un script plotpm.py qui, à partir des données du fichier measures_20191114_20191122.xls, trace les concentrations de particules fines (PM2.5 et PM10) pour la journée du 19/11/2019 entre 6h et 22h.

Concentrations de particules fines
Correction
import pandas as pd
import matplotlib.pyplot as plt

# Chargement des données Excel en mémoire
df = pd.read_excel('measures_20191114_20191122.xls')

df_19112019 = df[ (df['date (UTC)'] >= '2019-11-19 06:00:00') & (df['date (UTC)'] <= '2019-11-19 22:00:00') ]

plt.title('Concentrations de particules fines (19/11/2019)')
plt.plot(df_19112019['pm 10 (ug/m3)'], label="PM10")
plt.plot(df_19112019['pm 2.5 (ug/m3)'], label="PM2.5")
plt.ylabel('µg/m3')
plt.legend()
plt.show()

Le module plotly

Plotly propose une bibliothèque de génération de graphiques interactifs compatible avec de nombreux langages de programmation (Python, R, JavaScript, Julia, MATLAB, etc).

Si ce n'est pas déjà fait, vous devez installer ce module dans un terminal (invite de commandes sous Windows) en tapant la commande suivante :

Windows :

pip.exe install plotly

macOS ou Linux :

pip3 install plotly

Exercice

Modifiez votre script plotpm.py afin de produire un graphique avec plotly à partir des mêmes données.

Concentrations de particules fines
Correction
import pandas as pd
import plotly.express as px

# Chargement des données Excel en mémoire
df = pd.read_excel('measures_20191114_20191122.xls')

df_19112019 = df[ (df['date (UTC)'] >= '2019-11-19 06:00:00') & (df['date (UTC)'] <= '2019-11-19 22:00:00') ]

fig = px.line(df_19112019, x='date (UTC)', y=['pm 10 (ug/m3)', 'pm 2.5 (ug/m3)'], title='Concentrations de particules fines (19/11/2019)')
fig.show()