Я проверил эту версию pyqtgraphDateAxisItem иногда становится невидимым
git clone https://github.com/3rdcycle/pyqtgraph.git
git checkout origin/date-axis-item
pip uninstall pyqtgraph
python setup.py install
я запустить эту программу. Кажется, что он работает нормально, за исключением того, что мои x-оси временных меток входят и исчезают из виду, если я ничего не делаю. Не уверен, что это ошибка в этой программе или в DateAxisItem
. Кроме того, миллисекунды всегда кратно 100. Так, например, я вижу 00: 00: 00: 900, 00: 00: 01: 200, но не 00: 00: 00: 042?
# -*- coding: utf-8 -*-
"""
Created on Thu May 14 21:09:44 2015
@author: idf
"""
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(maxlen=20)
class TimeAxisItem(pg.DateAxisItem):
def __init__(self, *args, **kwargs):
super(TimeAxisItem, self).__init__(*args, **kwargs)
def tickStrings(self, values, scale, spacing):
return [QTime().addMSecs(value).toString('hh:mm:ss.zzz') for value in values]
app = QtGui.QApplication([])
win = pg.GraphicsWindow(title="Basic time-plotting examples")
win.resize(1000,600)
plot = win.addPlot(title='Timed data', axisItems={'bottom': TimeAxisItem(orientation='bottom')})
curve = plot.plot()
def update():
global plot, curve, data
data.append({'x': t.elapsed(), 'y': np.random.randint(0, 100)})
x = [item['x'] for item in data]
y = [item['y'] for item in data]
curve.setData(x=x, y=y)
tmr = QTimer()
tmr.timeout.connect(update)
tmr.start(800)
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
Вы определяете свой собственный AxisItem здесь. Зачем вам нужно наследовать DateAxisItem? –
Потому что я хочу контролировать, сколько десятков мест показывают на частичной части секунды. В противном случае это будет 6 десятичных знаков. – Ivan