Товарищи,Как сохранить графики matplotlib после завершения процесса
У меня есть функция, которая должна генерировать некоторые графики matplotlib, а затем прекращаться. Я хочу, чтобы сюжеты остались после того, как они закончились.
- Если я устанавливаю интерактивный режим, график появляется, не блокируется, а затем исчезает, когда моя функция завершается. Я не хочу этого.
- Если я отключил интерактивный режим, появится график, затем блокируется, пока вы его не закроете, а затем функция прекратится. Я тоже этого не хочу.
Желаемое поведение: График появляется, не блокируется и остается после завершения функции.
Итак, люди, есть ли способ сделать это? Наиболее вероятный подход, по-видимому, является многопроцессорной. Я бы подумал, следующий код будет работать:
from multiprocessing import Process
import matplotlib.pyplot as plt
import numpy as np
def plot_graph():
plt.plot(np.random.randn(10))
plt.show()
p = Process(target=plot_graph)
p.start()
Но это ничего (по крайней мере, на MacOS, бэкенд TkAgg)
Я знаю, что могу просто сохранить рисунок как изображение и открыть не показывать изображение, но это не совсем то, что я хочу - я бы все еще был в состоянии использовать элементы управления масштабированием matplotlib и т. д.
Попробуйте переместить 'plt.show()' после 'p.start()'? – DavidG
Что вы имеете в виду? show вызывается после запуска, в новом процессе. – Peter