[Python-es] Matplotlib, generar gráfica en tiempo real.
Hiram Zúñiga
hiramhzr en gmail.com
Jue Mayo 30 21:57:24 CEST 2013
On Thu, May 30, 2013 at 09:16:49AM +0200, Kiko wrote:
> El 30 de mayo de 2013 07:11, Hiram Zúñiga <hiramhzr en gmail.com> escribió:
>
> > Hola lista,
> >
> > Estoy tratando de graficar un archivo csv en tiempo real, adjunto
> > los archivos para que se entienda mejor lo que explicare,
> >
> > Al correr el script generar.py(creo un archivo nuevo.csv), se generan
> > 100 registros con números aleatorios entre 1 y el 7, ahora al correr
> > graficacsv.py podemos observar que se genera correctamente la gráfica,
> > lo que quiero lograr ahora es que en lugar de esperar a que finalice
> > el poblado del archivo csv para mostrar la gráfica, quiero ver en tiempo
> > real como se va construyendo cada que se agrega un nuevo registro al
> > archivo,
> > agregue un retardo de 1 seg (linea 12: generar.py) para poder observar cada
> > que se agrega un nuevo registro, pero al
> > ejecutar graficacsv.py no muestra los datos que se van generando dentro
> > del archivo, simplemente me muestra una gráfica vacía,
> > por lo que tengo que matar el proceso de generar.py para poder ver la
> > gráfica.
> >
>
Gracias ya puedo ver como se va poblando el archivo.
> Puedes hacer:
>
> file.flush()
>
> Para asegurarte que los datos se escriben en el fichero.
>
>
> >
> > Me imagino que todo puede ir por el lado de que al estar escribiendo el
> > archivo
> > (nuevo.csv)este se bloquea para ser leído, si es esto cierto, hay alguna
> > otra
> > forma de lograr lo que me propongo.
> >
>
> No hay bloqueo del fichero.
>
>
> >
> > En resumen necesito ver los datos generados por generar.py en tiempo
> > real ejecutando graficacsv.py
> >
>
Con que instrucción puedo actualizar las partes que van cambiando, podría
ser con fig.canvas.draw()?
> ¿Por qué lo haces en dos programas separados? No sería más sencillo hacerlo
> en el mismo proceso y actualizar solo las partes que van cambiando en lugar
> de leer todo el fichero csv para actualizar el gráfico.
>
>
> >
> > Espero me puedan orientar, desde ya muchas gracias a tod en s
> >
>
> Échale un ojo a la API de animación que tiene Matplotlib. Puedes ver un
> ejemplo de como usarlo en:
> http://pybonacci.wordpress.com/2012/12/16/creando-una-animacion-con-matplotlib-y-ffmpeg/
>
> También puedes ver más ejemplos de como usar matplotlib de forma
> interactiva en este tutorial de Jake Vanderplas:
> http://vimeo.com/63260224
>
>
> >
> > Adjunto(graficacsv.py, genear.py, nuevo.csv es generado automático)
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en python.org
> > http://mail.python.org/mailman/listinfo/python-es
> > FAQ: http://python-es-faq.wikidot.com/
> >
> >
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
Sigo con el mismo problema de ver en tiempo real la gráfica,
le estoy dando una vistazo a las ligas que me proporcionaste,
muchas gracias.
Más información sobre la lista de distribución Python-es