I have a python / matplotlib application that frequently updates a plot with new data coming in from a measurement instrument. The plot window should not change from background to foreground (or vice versa) with respect to other windows on my desktop when the plot is updated with new data.
This worked as desired with Python 3 on a machine running Ubuntu 16.10 with matplotlib 1.5.2rc. However, on a different machine with Ubuntu 17.04 and matplotlib 2.0.0, the figure window pops to the front every time the plot is updated with new data.
How can I control the window foreground/background behavior and keep the window focus when updating the plot with new data?
Here's a code example illustrating my plotting routine:
import matplotlib import matplotlib.pyplot as plt from time import time from random import random print ( matplotlib.__version__ ) # set up the figure fig = plt.figure() plt.xlabel('Time') plt.ylabel('Value') plt.ion() # plot things while new data is generated: t0 = time() t = [] y = [] while True: t.append( time()-t0 ) y.append( random() ) fig.clear() plt.plot( t , y ) plt.pause(1)
plt.ion(), what happens if you useplt.show(block=False)and then in yourwhileloop addplt.draw()right after theplt.plot()call?