pyqtgraph: как не отображать временные ряды до 00:00 (используя AxisItem)

как я могу отображать ось времени, начиная с 00:00, и не отображать оси времени до 00:00? График будет отображать данные в реальном времени, считанные с датчика. И он начнет отображать данные в самой правой части графика, начиная с 00:00 (время поступления данных), и будет скользить влево по мере поступления данных. Итак, я хочу избавиться от значений оси времени до 00:00? Я ценю все ваши предложения.

from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg
from PySide.QtCore import QTime, QTimer
from collections import deque

t = QTime()
t.start()
data = deque()
class TimeAxisItem(pg.AxisItem):
def tickStrings(self, values, scale, spacing):
    return [QTime().addMSecs(value).toString('mm:ss') for value in values]

app = QtGui.QApplication([])
win = pg.GraphicsWindow()
win.resize(1000,600)
print type(win)
axis = TimeAxisItem('bottom')
plot = win.addPlot(title='Timed data',axisItems={'bottom':axis},enableMenu=False)
curve = plot.plot()

now = 0
timeStart = -15000
minX =-15000
i = 0
def update():
global i, plot, curve, data,minX,now,timeStart
time = t.elapsed()
data.append({'x': time, 'y': np.random.randint(0, 100)})
timeStart += 1
x = [item['x'] for item in data]
y = [item['y'] for item in data]
if i == 0:
            difference = x[-1]
            i = 1
else:
            difference = x[-1] - x[-2]
minX += difference
plot.setXRange(minX,x[-1])
curve.setData(x=x, y=y)
tmr = QTimer()
tmr.timeout.connect(update)
tmr.start(100)
if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
    QtGui.QApplication.instance().exec_()

person Upol Ryskulova    schedule 10.04.2015    source источник


Ответы (1)


Можете ли вы просто предоставить пустую строку для чего-либо меньшего, чем 0?

def tickStrings(self, values, scale, spacing):
    return ['' if value < 0 else 
            QTime().addMSecs(value).toString('mm:ss') for value in values]
person Luke    schedule 01.05.2015