#!/usr/bin/env python from pylab import * import threading import time # Replot some data each time is called def replot(datafile, title) : # Control errors (mainly "file not found") try : # read the data file data=loadtxt(datafile) # open figure (in case create it) fig = figure(title) # clear canvas fig.clear() # plot data plot(data.T) # redraw fig.canvas.draw() except : pass # A thread dedicated to read the keyboard class KeyPressThread(threading.Thread): def run(self): global end_thread; # wait for keypress raw_input() lock = threading.Lock() lock.acquire() # if a key is pressed switch # the end flag to true end_thread = True; lock.release() if __name == "__main__" : ion() close('all') # init the end flag end_thread = False # Start the dedicated thread k = KeyPressThread() k.start() # start the replot loop while(not end_thread) : replot("my_data","my_plot") # link the thread to main thread k.join()
Thursday, 9 October 2014
Stopping a run-time plot via key-press using threads in pylab
You can use threads to tell a python script to end a plotting loop:
Subscribe to:
Posts (Atom)