【问题标题】:How to position a pyqtgraph plot at a pixel position in the window?如何将 pyqtgraph 图定位在窗口中的像素位置?
【发布时间】:2021-05-22 02:17:23
【问题描述】:

我有一个项目,我正在绘制通过串行端口传入的 10 个不同的数据图(我有一个带有一堆传感器的 Arduino,它正在报告值,我想要一个 Python 程序来显示所有这些值的图表)。我让它与 Tkinter 和 Matplotlib 一起工作,但它的运行速度不够快,无法跟上数据流的速度(我想要每秒 30 帧)。我听说 pyqtgraph 是一个不错的选择,但我能找到的所有示例都使用 Grid 结构来定义窗口内图形的位置。我不想要一个网格,我想说“在屏幕坐标 1000,750 处放置一个 300x200 像素图”。我怎样才能做到这一点?在我现有的 tkinter 设置中,我生成自定义 Graph 对象,每个对象都有自己的 plt.figure() 实例,然后我有这些行来放置它们:

self.canvas = FigureCanvasTkAgg(self.fig, master=tk_root)
plot_widget = self.canvas.get_tk_widget()
plot_widget.place(x,y,width,height)

如何在pyqtgraph中进行类似的操作?我正在查看示例,我看到像p1 = win.addPlot(title="Basic array plotting", y=np.random.normal(size=100)) 这样的行,似乎将绘图添加到窗口的函数应该有一个位置参数,但它没有。我是否需要调用另一个函数,类似于p1.setPosition(x,y,w,h)

【问题讨论】:

  • 您的问题不清楚:您要移动窗口还是要移动 PlotWidget 或类似中的项目?还请提供minimal reproducible example,也可以提供一张图片来说明您想要的内容,以帮助了解您
  • 如标题所述,我希望将plot定位在window中。我打算将窗口全屏显示,并且我在询问如何将绘图定位在窗口内的任意位置,而不是绑定到内置网格系统。我无法提供可重现的示例,因为如果我能提供示例,我就完成了。

标签: python pyqt5 pyqtgraph


【解决方案1】:

据我了解,OP 希望放置一些小部件,在窗口内以预定大小显示绘图的特定位置,因此您必须使用 setGeometry() 或 move() + resize():

import sys

from PyQt5 import QtWidgets

import pyqtgraph as pg
import numpy as np


class Widget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.plot_widget = pg.PlotWidget(self)
        self.plot_widget.setGeometry(1000, 750, 300, 200)
        # or
        # self.plot_widget.move(1000, 750)
        # self.plot_widget.resize(300, 200)

        self.plot_widget.plot(y=np.random.normal(size=100))
        self.plot_widget.setTitle("Basic array plotting")
        self.showMaximized()
        # or
        # self.showFullScreen()


def main():

    app = QtWidgets.QApplication(sys.argv)
    w = Widget()
    w.show()
    app.exec_()


if __name__ == "__main__":
    main()

【讨论】:

  • 谢谢,这很有帮助。 setGeometry 是我在文档中苦苦寻找的关键函数。
猜你喜欢
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
  • 2011-12-31
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
相关资源
最近更新 更多