Короче говоря, я пытаюсь найти более быстрый способ отображения данных в реальном времени, поступающих через последовательный вход.Данные выглядят как координаты (x, y) и около 40 поступают в каждую секунду.Поток будет хранить данные в массиве, используя x в качестве индекса и устанавливая y в качестве значения для него.Эта часть нарезается.Хотя поток может сразу считывать данные, библиотека pyqtgraph не может справиться с этой скоростью.
Вот часть кода, где я строю данные.Расстояния и тэта-переменные являются массивами с 6400 индексами.Они были преобразованы в полярные значения и нанесены на график с каждой итерацией.Я добавил задержку, чтобы сохранить ее в режиме реального времени, хотя это лишь временное решение.
while True:
x = distances * np.cos(theta)
y = distances * np.sin(theta)
plot.plot(x, y, pen=None, symbol='o', clear=True)
pg.QtGui.QApplication.processEvents()
#sleep(0.025)
Пока все идет так, как я ожидаю, он не может отображать самые последние данные изпоследовательный вход.Он легко отстает на несколько секунд от последних чтений, возможно потому, что он не может построить 6400 точек каждые 1/40 секунды.Мне интересно, есть ли способ обновить только 1 очко, вместо того, чтобы заново пересчитывать весь разброс каждый раз в pyqtgraph.
Возможно построить график на основе точки, но если это так, есть ли способ отслеживать каждую отдельную точку?Не должно быть никакой точки, которая разделяет одно и то же значение угла и имеет разные расстояния, и должна существенно его перезаписывать.
Мне также интересно, есть ли другие библиотеки графической анимации, которые могли бы быть возможным решением, которое стоит рассмотреть.
Вот как это выглядит, если вам интересно:
![enter image description here](https://i.stack.imgur.com/CldTY.png)