Retour à l'accueil

Construction de graphiques à partir de CSV en Python matplotlib

L'article décrit des scripts pour créer des graphiques 2D à partir de CSV avec matplotlib. Exemples : graphique basique, ajout de seuil d'éclairement, grille, légende. Avantages et installation du package.

Graphiques à partir de CSV : matplotlib en Python avec exemples
Advertisement 728x90

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 :

Google AdInline article slot
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 :

Google AdInline article slot
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.

Google AdInline article slot

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 numpy pour les tableaux : X = np.array(X) accélère le tracé.
  • Délimiteur CSV : essayez delimiter=',' ou ';', ou passez à pandas pour les fichiers complexes.
  • Étiquettes des axes : plt.xlabel, plt.ylabel avec 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

Advertisement 728x90

Lire ensuite