【发布时间】: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中。我打算将窗口全屏显示,并且我在询问如何将绘图定位在窗口内的任意位置,而不是绑定到内置网格系统。我无法提供可重现的示例,因为如果我能提供示例,我就完成了。