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