问题标签 [pyqtgraph]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pyqtgraph - 链接以查看更改轴范围pyqtgraph
假设我在 pyqtgraph 中创建了两个视图\绘图,然后将它们链接起来。使用线条
问题是,当我们链接视图时,两个视图的范围是相等的,这会引发问题,因为一个图似乎被缩小或放大了太多。我们只想链接视图以放大但不希望范围随着情节的变化而变化。
以下是直观地解释问题的示例代码
python - PyQtGraph 自定义 PlotDataItem 没有收到 mouseDragEvents
我正在设置一个自定义 PlotDataItem 来接收 mouseDragEvents。我已经根据我的需要调整了这个答案。现在我刚刚在事件中添加了一个简单的 setData 来检查它是否正常工作。自定义 PlotDataItem 如下:
PlotDataItem 被添加到实现curveDragged的自定义 ViewBox 中,因此我知道正在拖动哪条曲线(如果有)。出于调试目的,我还禁用了 ViewBox 的 mouseDragEvents。
但是,当尝试拖动 ViewBox 中的线时,没有任何反应。此外,如果我在 mouseDragEvent 顶部添加异常,则不会发生任何事情。这让我相信 mouseDragEvent 根本没有被调用。
我使用 Python 3.3(Anaconda Distribution)和 pyqtgraph 的开发版本(0.9.9)。
我希望有人可以帮助我:)。提前致谢。
python - PyQtGraph - 如何关闭绘图窗口/关闭所有绘图窗口?
我试过 pg.close() 但没用,在手册中找不到。我在一个循环中生成图,所以我想在每个循环结束时将它们全部关闭(相反,它会弹出一个新窗口打开,直到我的计算机发疯)。
python - 使用 pyqtgraph 在 Python 中实时绘图
我正在使用 Qt(当前为 PyQt)在 Python 中编写一个应用程序,该应用程序通过 UDP 接收遥测(位置数据)并显示该数据。它可以处理几种数据包类型,每种类型都有几个数据字段。我有一个单独的线程来处理接收和解码数据包,它们会发出信号将该数据发送到 Qt GUI 进行显示。数据以多种方式显示:当前值显示、滚动日志显示和 3D 视图显示。所有这一切都运行得很好,并且每个数据包都以高达约 30Hz 的频率实时更新。
我想添加另一个显示实时图的选项卡。用户可以选择要绘制的数据流,它将实时更新,显示最后 60 秒数据的滑动窗口(可能在某些时候可配置)。但是我的第一种方法特别慢。它几乎没有跟上我们的模拟器只绘制一条运行速度远低于 30Hz 的线。
我正在使用 pyqtgraph 进行绘图。我在我的 .ui 文件中实例化了一个 PlotWidget,并为可以在绘图上绘制的每条数据线创建一个 PlotDataItem。我正在使用双端队列来存储要绘制的数据,包括值和时间。这样,我可以在数据进入时快速添加数据,并在数据超出滑动窗口时将其删除。我将所有这些存储在每个数据包类型和字段的字典中:
'starttime' 存储用于计算经过的秒数的初始日期时间值。'realtime' 存储收到每个数据包的日期时间值(我目前没有使用它,所以如果可以节省时间,我可以放弃它)。'time' 存储从 'starttime' 开始经过的秒数,以便于绘图,'data' 存储值。
当一个数据包进来时,我将数据存储在我可能想要解析的每个字段的双端队列中。然后我修剪掉滑动窗口之外的所有数据。最后,双端队列被打包在一个 numpy 数组中并传递给 PlotDataItem 的 setData 方法。这是为每个接收到的数据包运行的代码的简化版本:
self.plotRate 可用于绘制数据,使用墙上时间或强制时间轴为固定更新率。这对于与模拟器一起使用很有用,因为它比真实系统运行得慢。
我可能应该做的第一件事不是每次都为没有绘制的图调用 .clear() (只是使逻辑复杂一点)。除此之外,有人有任何提高性能的技巧吗?numpy 数组的双端队列是一个好策略吗?有没有更好的方法来更新数据,因为我每行只更改几个值(添加一个点并可能删除一两个点)?
python - 当鼠标移到应用程序上时,PYQTGraph 应用程序变慢
我有一个多线程(通过 pyqt)应用程序,它绘制实时数据(数据在第二个线程中处理并传递给 gui 线程以通过 pyqt 信号进行绘图)。如果我将鼠标放在应用程序上,它会继续全速运行(通过调用之间的时间差来衡量app.processEvents()
)。一旦我开始移动鼠标,更新速度就会变慢,当我停止移动鼠标时会再次增加。
有谁知道我如何解决这个/调试问题?
代码非常冗长和复杂,所以我不想在这里发布。谢谢!
python - 如何在pyqtgraph中获取绘图线的像素坐标
我正在用 pyqtgraph 绘制一个图:
我想获取最后一点的像素坐标 (3,1)
我怎样才能做到这一点?
python - pyqtgraph 中的两个 Y 尺度(类似双胞胎)
如何在 中生成具有两个 Y 尺度的图pyqtgraph
?
我还需要两种不同颜色的(对应于线条的颜色)。
在 matplotlib 中,可以使用 来完成twinx
,如本例所示。
如果没有办法用单个绘图对象来做到这一点,也许有一种方法可以将一个绘图(右侧 y 轴)覆盖在另一个绘图(左侧 y 轴)上?
pyqtgraph - 在pyqtgraph中旋转刻度字符串
有没有办法在 中旋转 X 轴的刻度线pyqtgraph
?
在matplotlib
中,可以使用setp(..., rotation=xxx)
(和其他方式)来完成。例如:
qt - 在无 GUI 的 pyqtgraph 中导出绘图
我pyqtgraph
在一个脚本中使用了神话般的东西,它创建了一个情节并将其导出到一个文件中(不使用交互功能)。它工作得很好。
但是,当在没有 X 服务器的远程机器上运行它时,会出现以下错误mkQApp()
:
cannot connect to X server
有没有办法运行 pyqtgraph GUI-less-ly,消除对 X 的依赖?
我发现有一个QtCore.QCoreApplication
类,据我所知,它是无 GUI 的。但是,我对 Qt 不够熟悉,无法判断它是否可以(或确实)与 pyqtgraph 一起使用。
python - 与 pdb 一起使用时的 pyqtgraph 怪异
我惊讶地发现仅仅存在一个断点就可以改变 pyqtgraph 对象(python2.7)的行为。
这是一个最小的工作示例:
运行:
问题:
- 出于好奇:在导致这种奇怪的断点处停止时会发生什么?这是 pyqtgraph 中的错误吗?
- 哪个是正确/预期的结果?0 还是 35?