2015-04-01 150 views
2

我是PyQtGraph的新手,需要幫助繪製x軸上的日期時間對象,這可以輕鬆地用matplotlib完成。任何幫助,將不勝感激。用PyQtGraph繪製日期時間對象

作爲Id喜歡做的簡單版本,請參閱下面我想繪製的日期時間對象作爲x軸上的刻度顯示。

該代碼拋出錯誤,因爲無法完成。

import pyqtgraph as pg 
from pyqtgraph.Qt import QtCore, QtGui 
import datetime 

datetimes = ['2014-10-01 00:00:00', '2014-10-02 00:00:00', '2014-10-03 00:00:00'] 
x = [datetime.datetime.strptime(i, '%Y-%m-%d %H:%M:%S') for i in datetimes] 
y = [1,2,3] 


win = pg.GraphicsWindow(title = 'plotting') 
p1 = win.addPlot(row=1, col=0, title = 'test') 
p1.plot(x,y) 

if __name__ == '__main__': 
    import sys 
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): 
     QtGui.QApplication.instance().exec_() 

回答

0

正如你已經發現,pyqtgraph不支持與datetime對象繪製。在繪圖之前,您需要將它們轉換爲數值。

對於靜態縮放,還可以使用AxisItem.setTicks()來自定義顯示在軸上的文本。

如果您希望能夠縮放軸,則需要製作一個AxisItem子類,該子類將覆蓋tickValuestickStrings。你可以在這裏看到的文檔字符串:https://github.com/pyqtgraph/pyqtgraph/blob/develop/pyqtgraph/graphicsItems/AxisItem.py#L661

..和作爲一個例子,有一個開放的PR試圖你在這裏做什麼:https://github.com/pyqtgraph/pyqtgraph/pull/74

+0

嗨盧克。你可能有這樣的例子嗎?我已經能夠根據日期時間重命名花車,但我需要它根據用戶的縮放級別自動調整 – RicDavimes 2015-04-07 07:28:44

+0

我向答案添加了更多信息。 – Luke 2015-04-07 21:48:45