我正在从事一个Python UI项目,我正在将实时数据绘制到pyqtgraph小部件(我正在使用1hz频率对图形进行实时数据绘制)。这是我第一个使用Python和pyqtgraph的项目,所以我仍在努力学习,到目前为止,对于原型来说一切都很好
我的问题是,当我开始绘图时,一段时间后,随着绘制线向右延伸,视图自动平移以跟随数据,数据开始累积,最终会落在后面,绘制数据线的末端延伸到屏幕外。它继续以一致的速度向右平移,但不再显示最新数据。我知道autopan函数将当前平均值的视图居中。例如,如果我当时在第200个数据点,我在一个图的中心看到第100个值,在一个图的末尾看到第150个值,但我需要的是在图的末尾看到第200个值
我使用pandas和PYQT Designer iu file for widgets将CSV文件中的值转换为数据帧,用于绘制的代码如下所示:
//////////////////////some other code later//////////////////////////
self.f = pd.read_csv('test_serial.csv')
self.fd = DataFrame(self.f, columns=['PACKET_TYPE ','TEMP'])
# Creating Telemetry variables for graphs
# TODO Create variable for every telemetry value
self.TEMP = self.fd.TEMP
self.PACKET_TYPE = self.fd.PACKET_TYPE
self.textBrowser.append(self.fd.to_string())
if (self.PACKET_TYPE == 'C').any():
self.c_graph.setLimits(maxXRange=10, maxYRange=100)
self.c_graph.setLabel(axis='left', text='c_temp_value')
self.c_graph.showGrid(x=True, y=True)
self.c_graph.setBackground('w')
self.c_graph.plot(self.TEMP, symbol='t1', pen='b', symbolPen='g', symbolBrush=0.2, clear=True)
我还发现它有一个自定义的自动平移工具,但不太了解它,无法在我的项目中实现它:https://gitlab.com/taurus-org/taurus_pyqtgraph/-/tree/main/taurus_pyqtgraph
我在看这个https://pyqtgraph.readthedocs.io/en/latest/graphicsItems/viewbox.html时想出了一个临时解决方案
我添加了以下几行:
self.total_rows = self.fd[self.fd.columns[0]].count()
self.c_Pressure.setLimits(xMin=self.total_rows-50 ,xMax=self.total_rows)
但现在的问题是,我无法返回并查看过去的值,因为视图已修复,现在唯一的问题是这个
目前没有回答
相关问题 更多 >
编程相关推荐