sé que estoy tarde para responder a esta pregunta, pero para su problema se puede mirar en el paquete de "palanca de mando". Lo diseñé para trazar una secuencia de datos desde el puerto serie, pero funciona para cualquier transmisión. También permite el registro de texto interactivo o el trazado de imágenes (además del trazado gráfico). No es necesario hacer sus propios bucles en un hilo separado, el paquete se encarga de ello, simplemente proporcione la frecuencia de actualización que desee. Además, el terminal permanece disponible para monitorear comandos durante el trazado.Ver http://www.github.com/ceyzeriat/joystick/ o https://pypi.python.org/pypi/joystick (PIP utilización instalar la palanca de mando para instalar)
basta con sustituir np.random.random() por su punto de leer los datos reales desde el puerto serie en el siguiente código:
import joystick as jk
import numpy as np
import time
class test(jk.Joystick):
# initialize the infinite loop decorator
_infinite_loop = jk.deco_infinite_loop()
def _init(self, *args, **kwargs):
"""
Function called at initialization, see the doc
"""
self._t0 = time.time() # initialize time
self.xdata = np.array([self._t0]) # time x-axis
self.ydata = np.array([0.0]) # fake data y-axis
# create a graph frame
self.mygraph = self.add_frame(jk.Graph(name="test", size=(500, 500), pos=(50, 50), fmt="go-", xnpts=10000, xnptsmax=10000, xylim=(None, None, 0, 1)))
@_infinite_loop(wait_time=0.2)
def _generate_data(self): # function looped every 0.2 second to read or produce data
"""
Loop starting with the simulation start, getting data and
pushing it to the graph every 0.2 seconds
"""
# concatenate data on the time x-axis
self.xdata = jk.core.add_datapoint(self.xdata, time.time(), xnptsmax=self.mygraph.xnptsmax)
# concatenate data on the fake data y-axis
self.ydata = jk.core.add_datapoint(self.ydata, np.random.random(), xnptsmax=self.mygraph.xnptsmax)
self.mygraph.set_xydata(t, self.ydata)
t = test()
t.start()
t.stop()
duplicado posible de [trazado en tiempo real en ciclo while con matplotlib] (http://stackoverflow.com/questions/11874767/real-time-plotting-in-while-loop-with-matplotlib) –