Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 20, 2022 16:35:14

Gorg
Зарегистрирован: 2022-05-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

pyqtgraph как работает setData

Здравствуйте, проясните пожалуйста как работает метод setData?
например есть такой tuple: x_data, y_data соответственно график отрисовывается нормально. В некоторый момент мне нужно обновить только последнюю точку и я выполняю setData([0.1, 0.1, 0.2, 0.1, 0.8]), по наблюдениям метод сам находит и обновляет эту точку, или он их все-таки заменяет? И отсюда еще вопрос: можно ли как-то сделать фиксированное число точек? Если добавляется новая, то самая первая точка удаляется. Спасибо, извините за два вопроса в одном топе

Офлайн

#2 Ноя. 20, 2022 22:17:20

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

pyqtgraph как работает setData

Gorg
как работает метод setData?
https://pyqtgraph.readthedocs.io/en/latest/api_reference/graphicsItems/plotdataitem.html#pyqtgraph.PlotDataItem.setData
Clear any data displayed by this item and display new data. See __init__() for details; it accepts the same arguments.

Исходный код метода .setData()
https://pyqtgraph.readthedocs.io/en/latest/_modules/pyqtgraph/graphicsItems/PlotDataItem.html#PlotDataItem.setData

Gorg
В некоторый момент мне нужно обновить только последнюю точку
Перерисовывай весь график. При этом в метод .setData() нужно передавать только списки по их именам, а вот чтобы менять точки, тебе надо работать с этими списками. Тогда ты сможешь и обновлять последнюю точку, и сделать фиксированное число точек.

Gorg
Если добавляется новая, то самая первая точка удаляется.
  
>>> lst = [1, 2, 3, 4, 5]
>>> 
>>> lst.pop(0)
1
>>> lst.append(6)
>>> 
>>> lst
[2, 3, 4, 5, 6]
>>>
  
>>> lst = [1, 2, 3, 4, 5]
>>> 
>>> def add_point_fixed(lst, point):
...     lst.pop(0)
...     lst.append(point)
...     return lst
... 
>>> add_point_fixed(lst, 6)
[2, 3, 4, 5, 6]
>>> add_point_fixed(lst, 7)
[3, 4, 5, 6, 7]
>>> add_point_fixed(lst, 8)
[4, 5, 6, 7, 8]
>>>



Отредактировано py.user.next (Ноя. 20, 2022 22:18:03)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version