我有一个看起来像这样的函数。我将像940320这样的整数添加到数据中。有趣的是,print
语句正确地显示它是一个int。但是,图表似乎强制图表的两个小数点?!令人生气的是它使用来显示数据为整数,但它已停止工作,即使我不认为我已经做出任何可能导致此问题的更改!向数据添加整数,但绘制一个实数
我注意到的一个线索是情节标签过去常常在名称末尾有(s),例如Symbol1(s)。但现在由于某种原因,他们最后说(ks)。我不知道这是做什么。
在任何情况下,是否有办法强制pyqtgraph绘制一个int而不是它认为数字的精度是什么?
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np
win = pg.GraphicsWindow()
win.setWindowTitle('Scrolling Plots')
win.showMaximized()
# 1) Simplest approach -- update data in the array such that plot appears to scroll
# In these examples, the array size is fixed.
p1 = win.addPlot()
p2 = win.addPlot()
p1.setLabel('left', 'Symbol1', 's')
p2.setLabel('left', 'Symbol2', 's')
data1 = []
data2 = []
data3 = []
data4 = []
curve1 = p1.plot(data1)
curve2 = p2.plot(data2)
win.nextRow()
p3 = win.addPlot()
p4 = win.addPlot()
p3.setLabel('left', 'Symbol3', 's')
p4.setLabel('left', 'Symbol4', 's')
curve3 = p3.plot(data3)
curve4 = p4.plot(data4)
def update1(data):
global data1, curve1, ptr1
print "Got symbol 1 ", data
if data1:
data1[:-1] = data1[1:] # shift data in the array one sample left
# (see also: np.roll)
data1.append(data)
curve1.setData(data1)
ptr1 += 1
QtGui.QApplication.instance().processEvents()
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
编辑:
即使我说data1.append(int(data))
相同的行为
编辑1:
像0.92345添加数据将转移图来(MS),也力要显示的数据为923.45
所以试图绘制整数,并且尝试绘制小于1的双精度值似乎有奇怪的行为。
你能更清楚什么是“图形似乎迫使两位小数点图”的意思?点出现在错误的地方?轴标签是否错误?这将有助于发布一个例子,1)立即显示不正确的行为,2)执行(不要让我们调试你的例子)。 – Luke 2015-04-04 15:04:47
有没有办法在这里发布图片? – Ivan 2015-04-05 00:50:27
如果我添加9.43456,它会正确显示在图形中,并且轴对于正在进入的数字有意义。如果我输入0.94356,它会强制图中的数字为943.56,并且该轴对于该数字有意义。奇怪的是,在我添加数字之前,我在控制台上输入了我添加的数字,这是正确的。这是这样做的图形本身有点奇怪。如果我添加943560,它也会强制943.56。如果我添加ints,图表显示(ks)。如果添加像0.9这样的数字,它会显示(ms)。只有当我添加双打> = 1时,该图显示了我所要求的,(s) – Ivan 2015-04-05 01:13:06