Ион Matplotlib ()и подпроцессы

Я пытаюсь вывести график, чтобы пользователь мог подтвердить, что подгонка сработала, но не прерывать весь процесс. Однако, пока появляется окно, в нем никогда ничего нет, и оно «Не отвечает». Я подозреваю, что существует плохое взаимодействие с функциональностью подпроцесса, так как этот код заканчивается -и обработка данных для моделирования выполняется на C++.

import subprocess
import numpy as np
from matplotlib import pyplot as mpl
...
mpl.ion()
fig = mpl.figure()
ax = fig.add_subplot(1,1,1)
ax.grid(True)
ax.plot(x, y, 'g')
ax.scatter(X, Y, c='b')
ax.scatter(min_tilt, min_energy, c='r')
mpl.draw()
...
subprocess.call(prog)

Следующий подпроцесс действительно открывается. Если я уберу вызов ion()и использую mpl.show(), то график работает нормально, но весь процесс сохраняется до закрытия окна. Мне нужно, чтобы процесс продолжался, пока пользователь смотрит на график. Есть ли способ сделать это?

7
задан Vadim Kotov 17 October 2019 в 17:18
поделиться