2015-02-03 3 views
2

Я пытаюсь построить временную серию с pyqtgraph. Я читал this, this и this. Но я не уверен, как правильно его использовать.pyqtgraph, график временных рядов

Мой сюжет сюжет виджет, и я использую это так:

graph.plot(aerosol_data, pen=pg.mkPen(color=colors[count], width=1, style=QtCore.Qt.SolidLine), axisItems={'bottom': TimeAxisItem(orientation='bottom')}) 

где TimeAxisItem определяется следующим образом:

class TimeAxisItem(pg.AxisItem): 
    def __init__(self, *args, **kwargs): 
     super().__init__(*args, **kwargs) 

    def tickStrings(self, values, scale, spacing): 
     # PySide's QTime() initialiser fails miserably and dismisses args/kwargs 
     return [useful_values_dict['useful_data']['data']['ISO_dates']] 

где ISO_dates список даты и времени в ISO формат

Я также попытался это:

graph.plotItem.plot(aerosol_data, pen=pg.mkPen(color=colors[count], width=1, style=QtCore.Qt.SolidLine), axisItems={'bottom': TimeAxisItem(orientation='bottom')}) 

, но без эффектов (осевые строки - это число строк).

Тогда я попытался использовать DateTimeAxis.py, таким образом:

date_axis = pg.DateAxisItem('bottom', pen=None, linkView=None, parent=None, maxTickLength=-1, showValues=True) 
date_axis.tickStrings(useful_values_dict['useful_data']['data']['timestamp_dates'],1, 1) 

, но я получаю сообщение об ошибке:

File "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\DateAxisItem.py", line 161, in tickStrings 
format_strings.append(x.strftime(tick_spec.format)) 
AttributeError: 'NoneType' object has no attribute 'format' 

ответ

4

я, наконец, решить мою проблему, это было довольно легко.

мне просто нужно, чтобы инициализировать мой участок виджет таким образом:

date_axis = pg.graphicsItems.DateAxisItem.DateAxisItem(orientation = 'bottom') 
    self.graph = pg.PlotWidget(axisItems = {'bottom': date_axis}) 

и сюжет моих данных таким образом:

graph.plot(x = useful_values_dict['useful_data']['data']['timestamp_dates'], 
       y = useful_values_dict['useful_data']['data'][raw_header], 
       pen=pg.mkPen(color=colors[count],width=1,style=QtCore.Qt.SolidLine)) 

рентгеновскими данными, как массив метки времени.

Спасибо!

+2

Тогда не стесняйтесь принимать свой собственный ответ. –

+0

Хотел бы я, но я не помню ни моего пароля, ни моего адреса электронной почты для учетной записи, с которой я задавал вопрос. – beni

Смежные вопросы