строение графиков, не блокируя выполнение

Я использую matplotlib для рисования диаграмм и графиков.

Когда я вывожу диаграмму на печать с помощью команды show() мои блоки кода при этой команде.

Я хотел бы обновить свой список значений с новыми данными, и, чем обновление изображение на фоне. Как сделать это, не закрывая каждый раз окно с графиком? Ниже код, который я использую

import pylab
a = (1,2,3,4)
pylab.plot(a)
pylab.show() # blocks here
16
задан meagar 19 March 2013 в 14:20
поделиться

3 ответа

В IPython, запущенном с -pylab , он не должен блокироваться.

В противном случае: С помощью ion () вы включаете интерактивный режим. show () больше не блокирует вашу систему . Каждый draw () или plot (x, y) обновляет ваш график.

ioff () отключает интерактивный режим. Полезно, если вы добавляете много данных и не хотите обновлять каждую мелочь.

См. Также: http://www.scipy.org/Cookbook/Matplotlib/Animations

12
ответ дан 30 November 2019 в 22:55
поделиться

Если вы не используете оболочку IPython, а запускаете программу, вы, вероятно, хотите сделать:

pyplot.draw()

после plot(), возможно, с последующим

raw_input("Press enter when done...")

чтобы подождать пользователя, прежде чем выводить что-то еще.

Если вы делаете pyplot.ion() в начале вашей программы, выполнение draw() часто можно даже пропустить.

pyplot.show() - это фактически бесконечный цикл, который обрабатывает события в главном окне черчения (такие как масштабирование, панорамирование и т.д.).

3
ответ дан 30 November 2019 в 22:55
поделиться

Это работает путем вызова Ipython с параметром -wthread (или -pylab ). Он больше не будет блокироваться на , покажите .

-1
ответ дан 30 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: