我有一個看起來像這樣的函數。我將像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