Ich habe eine Python/Matplotlib-Anwendung, die häufig ein Diagramm mit neuen Daten aktualisiert, die von einem Messgerät kommen. Das Diagrammfenster sollte sich nicht von Hintergrund zu Vordergrund (oder umgekehrt) in Bezug auf andere Fenster auf meinem Desktop ändern, wenn das Diagramm mit neuen Daten aktualisiert wird.Wie man das Matplotlib (Python) Fenster im Hintergrund behält?
Dies funktioniert wie gewünscht mit Python 3 auf einem Rechner mit Ubuntu 16.10 mit Matplotlib 1.5.2rc. Auf einer anderen Maschine mit Ubuntu 17.04 und Matplotlib 2.0.0 erscheint das Figurenfenster jedoch jedes Mal nach vorne, wenn das Diagramm mit neuen Daten aktualisiert wird.
Wie kann ich das Vordergrund-/Hintergrundverhalten des Fensters steuern und den Fensterfokus beibehalten, wenn das Diagramm mit neuen Daten aktualisiert wird?
Hier ist ein Codebeispiel veranschaulicht meine Plotten 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)
Als ich dies nicht in irgendeiner Weise testen, nur einen Vorschlag, was zu versuchen: statt 'plt.ion()', was passiert, wenn man 'plt.show (Block = False)' verwenden und dann in Ihre 'while' Schleife fügen Sie' plt.draw() 'direkt nach dem' plt.plot() 'Aufruf hinzu? –
@Thomas Kühn: Danke für deinen Vorschlag. Das änderte nichts an der Ubuntu 17.04/matplotlib 2.0.0 Umgebung. – mbrennwa
Was [Backend] (http://matplotlib.org/faq/usage_faq.html#what-is-a-backend) verwenden Sie? Es kann sich lohnen, dies zu ändern, um zu sehen, ob dies das Problem löst. –