Уведомления

Группа в Telegram: @pythonsu

#1 Март 23, 2012 09:42:12

mr-x
От:
Зарегистрирован: 2012-03-15
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Перерисовка графика из увеличивающегося массива

Использую numpy. Есть двумерный массив на несколько десятков тысяч записей, периодически в который данные дописываются. Дописывание сделано примерно так:

def add (x):
BigData.resize( BigData.shape[0]+1, BigData.shape[1] )
BigData[-1] = x
После каждого дописывания желаю вывести обновленный график, выдернутый из этого массива.
Однако, если я однажды вывожу график, resize перестает работать, так как появляется другой массив, ссылающийся на первый.

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

И ещё, если я вывожу график через matplotlib (pylab), то после его отображения примерно так “pl.show()”, программа останавливается до закрытия появившегося окна с графиком, а мне надо чтобы программа работала и периодически выводила на экран обновленный график. Как этого добиться?


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



Офлайн

#2 Март 23, 2012 09:48:57

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Перерисовка графика из увеличивающегося массива

Офлайн

#3 Март 23, 2012 10:12:12

mr-x
От:
Зарегистрирован: 2012-03-15
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Перерисовка графика из увеличивающегося массива

Спасибо, очень интересно. Только вот работает оно само с заданным периодом времени, а мне хотелось бы давать команду на перерисовку самому. И я так и не понимаю, что делать с растущим массивом. Разве что приходит на ум периодически строить из большого массива другой, маленький и фиксированный, и выводить уже его.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version