Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import matplotlib
- matplotlib.use("WXAgg")
- from matplotlib import pyplot as plt
- import numpy
- import threading
- import wx
- import time
- x = []
- y = []
- fig = plt.figure()
- ax = fig.add_subplot(111)
- line = ax.plot(x,y)[0]
- ax.set_ylim(-1,1)
- def update(x, y):
- """put code to update plot or other GUI stuff here"""
- x = numpy.array(x)
- y = numpy.array(y)
- line.set_data(x, y)
- fig.canvas.draw()
- ax.set_xlim(x.min(), x.max())
- class ProcessThread(threading.Thread):
- def start(self):
- self._running = True
- super(ProcessThread, self).start()
- def stop(self):
- self._running = False
- self.join(5.0)
- def run(self):
- """Do GPIO stuff here, but don't do GUI stuff"""
- t = time.time()
- while self._running:
- now = time.time()
- x.append(now-t)
- y.append(numpy.cos(now-t))
- wx.CallAfter(update, x , y) #calls update in the GUI thread
- time.sleep(0.2)
- thd = ProcessThread()
- thd.start()
- plt.show()
- thd.stop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement