Я разрабатываю приложение для сбора и отображения экспериментальных данных и управления несколькими устройствами. Я строю график с помощью таймера, который извлекает данные из нескольких массивов, которые постоянно заполняются другим QTimer, отвечающим за сбор данных.
После нескольких часов сбора и построения графика со скоростью, меньшей или равной 1 точке в секунду, построение графика становится довольно медленным, и я не думаю, что это связано с нехваткой памяти (8 байт x 12 часов x 3600 измерений/ час x 5 сигналов ~ 1,6 МБ и у меня не менее 2 ГБ ОЗУ), поэтому я думаю, что может быть задержка при повторной прорисовке и очистке сигналов, которая также происходит каждую секунду.
В настоящее время я использую:
PlotItem.plot(x, y, clear=True)
обновить мой сюжет. Есть лучший способ это сделать? Некоторая функция, которая добавляла бы точки данных к графику, не переделывая все это. Сказав, что я собираюсь пойти дальше и попробовать:
PlotItem.plot(x[-2:-1], y[-2:-1], clear=False)
Но это может быть немного сложно, так как мне придется различать свежие и старые данные. У кого-нибудь есть более элегантное решение?