Я недавно обновился до matplotlib 2.1.1 (раньше я использовал 1.5 или около того). Теперь matplotlib продолжает поднимать окна с фигурами на передний план. Раньше это имело место для вновь созданных окон (что имеет смысл), но теперь окна выводятся на передний план всякий раз, когда в скрипте вызывается pause ().
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> matplotlib.use('TkAgg')
>>> import matplotlib.pyplot as plt
>>> plt.figure()
<matplotlib.figure.Figure object at 0x7fab8c0ace80>
>>> plt.pause(1) # <--- the figure gets created and put into foreground here (this is expected)
>>> plt.pause(1) # <--- the figure gets put into foreground again here (this is undesired)
Странно, поведение немного меняется в других бэкэндах. При использовании qt5 странное поведение поднятия происходит только тогда, когда pause () выполняется более одного раза без интерактивного приглашения между ними:
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> matplotlib.use('Qt5Agg')
>>> import matplotlib.pyplot as plt
>>> plt.figure()
<matplotlib.figure.Figure object at 0x7fcaeff5de80>
>>> plt.pause(1) # <--- the figure gets created and put into foreground here
>>> plt.pause(1) # <--- the figure stays in background
>>> plt.pause(1); plt.pause(1) # <--- the figure gets put in foreground when the second pause is executed.
Кто-нибудь знает, как отключить это поведение? У меня есть приложение, которое часто обновляет цифры и использует паузу. С фигурами, появляющимися на переднем плане все время, компьютер становится совершенно непригодным для любой другой работы.
Система:
Ubuntu 18.04 (протестировано с использованием Gnome и Unity)
Матплотлиб 2.1.1
Python 3.6.5