Visualiser des données CSV avec Matplotlib en Python
Un script Python utilisant la bibliothèque matplotlib permet de créer rapidement des visualisations à partir de fichiers CSV. Cet exemple utilise un fichier nommé LiLog.csv contenant des colonnes pour le numéro de ligne, le niveau de luminosité (Lx), la température, l'heure, la date et l'horodatage Unix. Le graphique trace l'horodatage (colonne 6) sur l'axe des X et le niveau de luminosité (colonne 2) sur l'axe des Y.
Vous aurez besoin de Python 3+, de matplotlib et du module csv intégré. Vérifiez votre interpréteur Python avec where python et utilisez une installation propre, en évitant les bundles de Cygwin ou Inkscape.
Installez les dépendances :
pip install matplotlib numpy
Script de base pour un graphique linéaire 2D
Ce code charge les données, parse le CSV et dessine une ligne :
import matplotlib.pyplot as plt
import csv
X = []
Y = []
with open('LiLog.csv', 'r') as datafile:
plotting = csv.reader(datafile, delimiter=',') # Virgule pour cet exemple
for ROWS in plotting:
X.append(float(ROWS[5]))
Y.append(float(ROWS[1]))
plt.plot(X, Y)
plt.title('Graphique linéaire à partir de CSV')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
Les listes X et Y sont remplies avec des valeurs float des colonnes spécifiées. csv.reader gère le délimiteur (virgule ici — vérifiez votre fichier). plt.plot trace la ligne, et show() ouvre la fenêtre.
Graphique avancé avec ligne de seuil et annotations
Ajoutez une ligne de seuil horizontale (63 Lx), une grille, une légende et des étiquettes tournées :
import matplotlib.pyplot as plt
import csv
X = []
Y = []
with open('LiLog.csv', 'r') as datafile:
plotting = csv.reader(datafile, delimiter=',')
for ROWS in plotting:
X.append(float(ROWS[5]))
Y.append(float(ROWS[1]))
threshold = 63.0
T = [threshold] * len(Y)
plt.plot(X, Y)
plt.plot(X, T)
plt.title('Évolution de l\'éclairage')
plt.xlabel('Temps,[s]')
plt.ylabel('Niveau lumineux, [Lx]')
plt.grid()
plt.xticks(rotation=-90)
plt.legend(['éclairage', f'seuil {threshold} Lx'])
plt.show()
Vérifiez les longueurs des tableaux avec print(len(X), len(Y)). Les types de données sont list[float]. Les fonctionnalités interactives incluent le zoom et le déplacement via la barre d'outils de la fenêtre matplotlib.
Dépendances et installation
Listez les paquets installés : pip freeze. Sortie typique de matplotlib :
- contourpy==1.3.3
- cycler==0.12.1
- fonttools==4.62.1
- kiwisolver==1.5.0
- matplotlib==3.10.8
- numpy==2.4.4
Installez individuellement : pip install matplotlib numpy.
Pourquoi Matplotlib excelle en visualisation de données
- Gratuit et open source.
- Interactif : zoom, sauvegarde en PNG, personnalisation des axes et grilles.
- Multiplateforme : Windows, Linux (avec interface graphique).
- Empaquetage en EXE avec PyInstaller pour un partage facile.
- Empreinte minimale : juste un fichier .py.
- Automatisation sans interface : exécution en ligne de commande sans GUI.
Limites
- Tracé en temps réel (ex. : flux COM/TCP) nécessite du threading ou FuncAnimation.
- Grands ensembles de données (>1M points) peuvent ralentir — optimisez avec des tableaux numpy.
Astuces clés
- Utilisez
numpypour les tableaux :X = np.array(X)accélère le tracé. - Délimiteur CSV : essayez
delimiter=','ou';', ou passez àpandaspour les fichiers complexes. - Étiquettes des axes :
plt.xlabel,plt.ylabelavec unités (s, Lx). - Légende :
plt.legend(['données', 'seuil'])pour plusieurs lignes. - Grille :
plt.grid()améliore la lisibilité.
Python + matplotlib est la combinaison idéale pour des visualisations rapides de données expérimentales issues de fichiers CSV. Parfait pour l'analyse de logs de capteurs, comme les niveaux de luminosité sur la durée.
— Editorial Team
Aucun commentaire pour le moment.