pyqtgraph: ось X как время - PullRequest
       24

pyqtgraph: ось X как время

0 голосов
/ 23 октября 2018

Я строю графики с помощью Pyqtgraph, но я застрял, пытаясь представить значения, которые мне нужны по оси X:

У меня есть список со значениями int, который был получен из XML-файла.

XX ==  [91049, 91049, 91049, 91049, 91049, 91051, 91057, 9110, 9110, 9118, 91111, 91111, 91119, 91122, 91122, 91130, 91133, 91133, 91142, 91145, 91145, 91153]

правильный способ прочитать эти значения: XX [0] = 9: 10: 49, XX [1] = 9: 10: 49, ..., XX [n-1] == 9: 11: 45, XX [n] = 9: 11: 53

Как мне кодировать, чтобы показать по оси X правильный формат, как говорится, 9: 10: 49

Обратите внимание, что значения внутри списка должны быть целыми, а не строковыми для построения с помощью pyqtgraph, поэтому я не могу записать напрямую и перейти к функции:

self.graphicsView.plot(XX,YY, pen='r', symbolBrush=(255,255,100), symbol='d', symbolPen='g')

Итак, естьспособ передать в функцию graphicsView.plot нужного формата, он говорит: 9: 10: 49?

или есть другой неизвестный мне путь?

спасибо

::::::::::: ОБНОВЛЕНИЕ :::::::::::::::: :

после сообщения: Показатьстроковые значения по оси x в pyqtgraph

я получил ошибку:

could not convert string to float: '9:10:49'

я изменил линию для построения с:

self.graphicsView.plot(list(XXX.value()),YY, pen=(255,0,0), name='red', symbolBrush=(255,0,0), symbolPen='w')

, а также код: XXX = dict (enumerate (X))

Итак, XXX теперь является диктом следующим образом:

{0: '9:10:49', 1: '9:10:49', 2: '9:10:49', 3: '9:10:49', 4: '9:10:49', 5: '9:10:51', 6: '9:10:57', 7: '9:11:00', 8: '9:11:00', 9: '9:11:08', 10: '9:11:11', 11: '9:11:11', 12: '9:11:19', 13: '9:11:22', 14: '9:11:22', 15: '9:11:30', 16: '9:11:33', 17: '9:11:33', 18: '9:11:42', 19: '9:11:45', 20: '9:11:45', 21: '9:11:53'}

он пытается построить ось x со значениями временис форматом hr: mm: ss, но кажется, что self.graphicView.plot () пытается преобразовать, чтобы плавать каждое значение из списка XXX.

Как я могу обмануть функцию, чтобы преобразовать ':'значение как число с плавающей точкой

Или, может быть, лучше другое решение?я действительно потерян

...