【问题标题】:pyqtgraph ignores some of my data and add some random datapyqtgraph 忽略了我的一些数据并添加了一些随机数据
【发布时间】:2015-08-23 03:06:59
【问题描述】:

我正在使用pyqt4PlotWidget 来查看一些情节。

我在 y 轴数据中有一些 datetime 值。但问题是pyqtgraph 忽略了一些日期时间值,并在其中添加了一些随机数据。

我使用了setRange 方法,但由于 minma​​x 日期时间值之间可能存在一些特定数据,我认为这种方法没有帮助。

如何使用我自己的数据绘制飞行员?

这是正常缩放,有些点没有日期时间

这是一个缩放图,其中一个点在 y 轴上没有日期时间,另一方面,2015-06-08 20:43:20 不存在于我的由pyqtgraph 自动添加的数据中

这是生成上述图的代码

class DateTimeAxis(pg.AxisItem):
    def tickStrings(self, values, scale, spacing):
        ret_dts = []
        for x in values:
            ret_dts.append(datetime.fromtimestamp(x))
        return ret_dts

axis = DateTimeAxis(orientation='bottom')
plotw = PlotWidget(axisItems={'bottom': axis})
times = [1433685535, 1433771935, 1433782735, 1433800735, 1433858335]
ydata = [10, 15, 25, 40, 30]
plotw.plot(y=ydata,x=times)

【问题讨论】:

  • 您能否提供一些示例代码来显示您所观察到的行为?它不一定是完整的代码或完整的数据,只是一个精简的版本,我们可以用它来理解问题并检查我们是否已经解决了它。目前你的问题应该被关闭,因为你没有提供足够的信息来理解这个问题。
  • 除了MCVE,请附上显示错误图表的屏幕截图。
  • 请添加有问题的照片,因为我没有足够的声誉。
  • 感谢您提供图片,我已在问题中为您编辑了它们。您现在可以按照上面的要求提供 MCVE 吗? (可用于重现这些图的最小示例)
  • @Bartanix 感谢您提供代码示例,但该示例不是完整 段代码(请参阅上面的链接了解如何制作 MCVE)。它的主要问题是您没有提供times_dictdata_dict 的内容,这使得问题无法重现。 请创建并包含一个小示例,其中包含重现问题所需的所有内容。

标签: python pyqt4 pyqtgraph


【解决方案1】:

AxisItem 不是为做你想做的事而设计的。它不知道您绘图中的数据;它只知道沿轴的最小/最大值。您需要调用 AxisItem.setTicks() 或覆盖 AxisItem.tickValues() 以显示数据的实际值。

【讨论】:

  • 我使用了datetime.utcfromtimestamp 并且情节的形状没有发生变化,并且仍然有些点没有日期时间。你能给我发一张你的阴谋的照片吗?日期时间一切正常吗?额外的随机日期时间?缺少日期时间?你运行的正是我的代码吗?
  • 图中数据点的位置似乎是正确的(尝试使用symbol='o' 绘制以查看该点的确切位置)。也许您关心底部轴刻度的位置?这些不(也不应该)与您数据中的点完全对应;它们只是被选择来填充沿轴的可用空间。
  • 我不在乎是否将一些随机数据添加到 y 轴数据中,但我希望我的 y 轴数据(与 x 轴相关的数据)出现在 y 轴上。你在你的情节中看到了吗?
  • 我不太明白。您的意思是希望 15 显示在 y 轴上,因为它是出现在数据中的值吗?您的意思是希望每个数据点的确切时间用 x 轴上的刻度表示?
  • 对不起。我错误地说 y 轴而不是 x 轴。我希望列表中的所有日期时间值都出现在 x 轴上
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
  • 2011-01-09
  • 2017-06-16
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多