pyqtgraph:如何绘制时间序列(x 轴上的日期和时间)?

Posted

技术标签:

【中文标题】pyqtgraph:如何绘制时间序列(x 轴上的日期和时间)?【英文标题】:pyqtgraph : how to plot time series (date and time on the x axis)? 【发布时间】:2014-06-02 19:33:49 【问题描述】:

我想用 pyqtgraph 绘制时间序列,并在 x 轴刻度上显示日期和/或时间,但我找不到怎么做。

编辑 1: 看来我应该继承 AxisItem 并重新实现 tickStrings()。我会调查一下。

编辑 2: 这是我将 AxisItem 子类化的方式。该文档显示了如何使用该类。

from __future__ import print_function
from PySide.QtCore import *
from PySide.QtUiTools import *
from PySide.QtGui import *
import pyqtgraph as pg
import time

## Reimplements \c pyqtgraph.AxisItem to display time series.
# \code
# from caxistime import CAxisTime
# \# class definition here...
# self.__axisTime=CAxisTime(orientation='bottom')
# self.__plot=self.__glyPlot.addPlot(axisItems='bottom': self.__axisTime) # __plot : PlotItem
# \endcode
class CAxisTime(pg.AxisItem):
    ## Formats axis label to human readable time.
    # @param[in] values List of \c time_t.
    # @param[in] scale Not used.
    # @param[in] spacing Not used.
    def tickStrings(self, values, scale, spacing):
        strns = []
        for x in values:
            try:
                strns.append(time.strftime("%H:%M:%S", time.gmtime(x)))    # time_t --> time.struct_time
            except ValueError:  # Windows can't handle dates before 1970
                strns.append('')
        return strns

【问题讨论】:

见this thread。 【参考方案1】:

看看this gist。您可以修改 tickStrings() 以根据比例更改格式字符串

【讨论】:

链接已失效。

以上是关于pyqtgraph:如何绘制时间序列(x 轴上的日期和时间)?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 pyqtgraph 中图形的“分辨率”?

如何使用pyqtgraph TimeAxisItem使X轴时间动态刷新

在 pyqtgraph 中的 x 轴上显示字符串值

每年绘制 X 轴上的月份和来自 NetCDF 的 Y 轴上的变量

如何使用 y 轴上的百分比和 x 轴上的每个指标来绘制性能百分比?

绘制虚拟变量时,如何将 x 轴上的 0.0,1.0 更改为男性女性?