Я играл с Numpy и matplotlib за последние несколько дней. У меня возникают проблемы с попыткой сделать график matplotlib функцией без блокировки выполнения. Я знаю, что на SO уже есть много тем, которые задают похожие вопросы, и я довольно много искал в googled, но не смог выполнить эту работу.
Я попытался использовать show (block = False), как предлагают некоторые люди, но все, что я получаю, - это замороженное окно. Если я просто вызываю show(), результат отображается правильно, но выполнение блокируется до закрытия окна. Из других потоков, которые я прочитал, я подозреваю, что работает или нет (block = False), зависит от бэкэнда. Это верно? Мой конец - Qt4Agg. Не могли бы вы взглянуть на мой код и сказать мне, если вы видите что-то не так? Вот мой код. Спасибо за любую помощь.
from math import *
from matplotlib import pyplot as plt
print plt.get_backend()
def main():
x = range(-50, 51, 1)
for pow in range(1,5): # plot x^1, x^2, ..., x^4
y = [Xi**pow for Xi in x]
print y
plt.plot(x, y)
plt.draw()
#plt.show() #this plots correctly, but blocks execution.
plt.show(block=False) #this creates an empty frozen window.
_ = raw_input("Press [enter] to continue.")
if __name__ == '__main__':
main()
PS. Я забыл сказать, что я хотел бы обновлять существующее окно каждый раз, когда я что-то рисую, вместо создания нового.