Visualizar datos CSV con Matplotlib en Python
Un script en Python que usa la biblioteca matplotlib te permite crear visualizaciones rápidamente a partir de archivos CSV. Este ejemplo utiliza un archivo llamado LiLog.csv con columnas para número de fila, nivel de luz (Lx), temperatura, hora, fecha y marca de tiempo Unix. El gráfico representa la marca de tiempo (columna 6) en el eje X y el nivel de luz (columna 2) en el eje Y.
Necesitas Python 3+, matplotlib y el módulo csv integrado. Verifica tu intérprete de Python con where python y usa una instalación limpia, evitando paquetes de Cygwin o Inkscape.
Instala las dependencias:
pip install matplotlib numpy
Script básico para gráfico de líneas 2D
Este código carga los datos, analiza el CSV y dibuja una línea:
import matplotlib.pyplot as plt
import csv
X = []
Y = []
with open('LiLog.csv', 'r') as datafile:
plotting = csv.reader(datafile, delimiter=',') # Coma para este ejemplo
for ROWS in plotting:
X.append(float(ROWS[5]))
Y.append(float(ROWS[1]))
plt.plot(X, Y)
plt.title('Gráfico de líneas con CSV')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
Las listas X e Y se llenan con valores flotantes de las columnas indicadas. csv.reader maneja el delimitador (coma en este caso; verifica tu archivo). plt.plot dibuja la línea y show() abre la ventana.
Gráfico avanzado con línea umbral y anotaciones
Agrega una línea umbral horizontal (63 Lx), cuadrícula, leyenda y etiquetas rotadas:
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('Cambio de iluminación')
plt.xlabel('Tiempo,[s]')
plt.ylabel('Nivel de luz, [Lx]')
plt.grid()
plt.xticks(rotation=-90)
plt.legend(['iluminación', f'umbral {threshold} Lx'])
plt.show()
Verifica las longitudes de los arrays con print(len(X), len(Y)). Los tipos de datos son list[float]. Incluye funciones interactivas como zoom y desplazamiento mediante la barra de herramientas de la ventana de matplotlib.
Dependencias e instalación
Lista paquetes instalados: pip freeze. Salida típica 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
Instala individualmente: pip install matplotlib numpy.
Por qué Matplotlib es genial para visualización de datos
- Gratuito y de código abierto.
- Interactivo: zoom, guardar como PNG, personalizar ejes y cuadrículas.
- Multiplataforma: Windows, Linux (con GUI).
- Empaquetar en EXE con PyInstaller para compartir fácilmente.
- Huella mínima: solo un archivo .py.
- Automatización sin interfaz: ejecuta desde línea de comandos sin GUI.
Limitaciones
- Gráficos en tiempo real (ej. flujos COM/TCP) requieren hilos o FuncAnimation.
- Conjuntos grandes (>1M puntos) pueden ralentizarse; optimiza con arrays de numpy.
Consejos clave
- Usa numpy para arrays:
X = np.array(X)acelera el trazado. - Delimitador CSV: prueba
delimiter=','o';', o cambia a pandas para archivos complejos. - Etiquetas de ejes:
plt.xlabel,plt.ylabelcon unidades (s, Lx). - Leyenda:
plt.legend(['datos', 'umbral'])para múltiples líneas. - Cuadrícula:
plt.grid()mejora la legibilidad.
Python + matplotlib es la combinación ideal para visualizaciones rápidas de datos experimentales de archivos CSV. Perfecto para análisis de registros de sensores, como niveles de luz a lo largo del tiempo.
— Editorial Team
Aún no hay comentarios.