首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PyQtGraph绘制Datetime对象

使用PyQtGraph绘制Datetime对象
EN

Stack Overflow用户
提问于 2015-04-01 16:12:10
回答 3查看 5.3K关注 0票数 9

我是PyQtGraph新手,需要帮助在x轴上绘制datetime对象,这可以用matplotlib轻松完成。任何帮助都将不胜感激。

作为我想做的事情的一个简单版本,下面是我想要在x轴上绘制显示为刻度的datetime对象的地方。

代码抛出一个错误,因为这是不能做的。

代码语言:javascript
复制
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_()
EN

回答 3

Stack Overflow用户

发布于 2020-03-05 14:44:40

在git上使用自定义AxisItem的一个工作示例:pg_time_axis.py

如果使用PyQt5,请将__main__函数中的导入更改为from PyQt5 import QtGui

PS:看到Luke提到的PR最终被合并真的很好。

票数 3
EN

Stack Overflow用户

发布于 2020-07-15 22:14:16

https://pyqtgraph.readthedocs.io/en/latest/graphicsItems/dateaxisitem.html?highlight=DateAxisItem现在本机支持DateTime格式: pyqtgraph

这非常简单,如果您在x轴上有时间戳,只需执行以下操作:

代码语言:javascript
复制
axis = DateAxisItem()
plot.setAxisItems({'bottom':axis})
票数 3
EN

Stack Overflow用户

发布于 2015-04-04 23:14:47

正如您已经发现的,pyqtgraph不支持使用datetime对象进行绘图。您需要在绘图前将其转换为数值。

对于静态缩放,还可以使用AxisItem.setTicks()自定义显示在轴上的文本。

如果您希望能够缩放轴,那么您需要创建一个覆盖tickValuestickStringsAxisItem子类。您可以在此处查看文档字符串:https://github.com/pyqtgraph/pyqtgraph/blob/develop/pyqtgraph/graphicsItems/AxisItem.py#L661

以..and为例,有一个开放的PR可以尝试您在这里所做的事情:https://github.com/pyqtgraph/pyqtgraph/pull/74

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29385868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档