domingo, 26 de enero de 2014

Graficar los datos de un archivo csv

 Un archivo csv=Comma Separated Values es un formato de archivo en que los datos de interés están separados por comas (u otros separadores), estos datos de interés pueden ser datos numéricos, o cadenas de caracteres.
En la presente entrada, solo nos interesan los datos numéricos, que pueden provenir de un archivo de hoja de calculo como Libre Office Calc,  MS Excel o pueden guardar resultados de simulaciones.

Este es un script de python que  procesa y grafica un archivo csv, se necesitan las librerias "pylab" y "csv".

 # procesar_csv.py  
 import pylab as pl  
 import csv  
 #  
 entrada = open('test.csv')  
 tabla = []  
 for fila in csv.reader(entrada):  
   tabla.append(fila)  
 entrada.close()  
 x=[0]  
 y=[0]  
 for fila in range(1, len(tabla)):  
     x.append(float(tabla[fila][0]))  
     y.append(float(tabla[fila][1]))  
 pl.plot(x,y)  
 pl.xlabel('Tiempo[s]')  
 pl.ylabel('Tension[V]')  
 pl.title('Ejemplo de grafica de un archivo csv')  
 pl.savefig('imagen.png')  
 pl.show()  


Este será el contenido del archivo csv de prueba, guardar como "test.csv", en el mismo directorio del script "procesar_csv.py"

 "TIME","?"  
 0,0  
 8.888888889e-05,10.4198  
 0.0001777777777,20.8278  
 0.0003555555555,41.5621  
 0.0007111111111,82.3786  
 0.001266666666,142.929  
 0.001822222222,197.233  
 0.002377777777,242.917  
 0.002933333333,277.985  
 0.003488888888,300.903  
 0.004044444444,310.67  
 0.0046,306.859  
 0.005155555555,289.638  
 0.005711111111,259.757  
 0.006266666666,218.524  
 0.006822222222,167.741  
 0.007377777777,109.626  
 0.007933333333,46.7202  
 0.008488888888,-18.2275  
 0.009044444444,-82.3786  
 0.0096,-142.929  
 0.01015555555,-197.233  
 0.01071111111,-242.917  
 0.01126666666,-277.985  
 0.01182222222,-300.903  
 0.01237777777,-310.67  
 0.01293333333,-306.859  
 0.01348888888,-289.638  
 0.01404444444,-259.757  
 0.0146,-218.524  
 0.01515555555,-167.741  
 0.01571111111,-109.626  
 0.01626666666,-46.7202  
 0.01682222222,18.2275  

Al ejecutar el script sobre el archivo csv anterior se obtiene la siguiente figura:

2 comentarios: