Есть много вопросов о matplotlib, pylab, pyplot, ipython, так что я сожалею, если вам стало больно видеть это. Я постараюсь быть настолько конкретным, насколько могу, потому что я просматривал вопросы людей и смотрел документацию на pyplot и pylab, и я до сих пор не уверен, что я делаю неправильно. Вкл. С кодом:matplotlib.pyplot/pylab не обновляет фигуру while isinteractive(), используя ipython -pylab
Цель: нанести график каждые 0,5 секунды и обновить фигуру сразу же после вызова команды plot.
Моей попытки кодирования это следующим образом (работает на IPython -pylab):
import time
ion()
x=linspace(-1,1,51)
plot(sin(x))
for i in range(10):
plot([sin(i+j) for j in x])
#see **
print i
time.sleep(1)
print 'Done'
Это Правильно участки каждую строку, но не до тех пор, она вышла для цикла. Я попытался сделать перерисовку, поставив draw()
, где **
есть, но это тоже не работает. В идеале, я бы хотел, чтобы он просто добавлял каждую строку, а не выполнял полную перерисовку. Если требуется перерисовка, это нормально.
Дополнительные попытки решения:
сразу после ion()
, попытался добавить hold(True)
безрезультатно.
для пинков попытался show()
для **
Ближайший ответ я нашел то, что я пытаюсь сделать, это в plotting lines without blocking execution, но show()
ничего не делает.
Прошу прощения, если это простой запрос, и я смотрю мимо чего-то столь очевидного. Для чего это стоит, это произошло, когда я пытался преобразовать код matlab из класса в некоторый python для моего собственного использования. Оригинальный MATLAB (инициализацию удален), который я пытался преобразовать следующим образом:
for i=1:time
plot(u)
hold on
pause(.01)
for j=2:n-1
v(j)=u(j)-2*u(j-1)
end
v(1)= pi
u=v
end
Любая помощь, даже если это просто «посмотреть this_method» было бы отлично, так что я могу по крайней мере сократить свои усилия, чтобы выяснить, как использовать этот метод. Если есть какая-то информация, которая была бы полезной, сообщите мне.
[Вы должны использовать 'pyplot.pause', а не' time.sleep'.] (Http://stackoverflow.com/questions/12822762/pylab-ion-in-python-2-matplotlib-1-1- 1-and-update-of-the-plot-while-the-pro) –
У меня была такая же проблема с использованием бэкэнда QT4Agg в Windows, я считаю, что он связан с этой проблемой [github] (https://github.com/matplotlib/matplotlib/issues/1646), используя pyplot.pause() исправил его. – seumas