使用 PyQt 在 matplotlib 中添加多个图形

Add multiple Figures in matplotlib with PyQt

我正在使用 QtDesigner 和 PyQt4 设计我的 GUI。首先在 QtDesigner 中,我向我的 GUI 添加了一个 matplotlib 小部件。然后在代码中我想添加多个嵌入的图形来并行显示。

我查看了PyQt4自带的MatplotlibWidget的给定代码class。它使用以下代码创建图。

self.figure = Figure(figsize=(width, height), dpi=dpi)
Canvas.__init__(self, self.figure)

但是当我查看如何添加更多数字时,网上的大多数解决方案都是使用

pyplot.figure()

但这不适合我的情况,因为它会创建独立的对话框。我希望将新图形嵌入到我当前的 GUI 中。

有人知道如何在不使用 pyplot 的情况下添加新图形吗?

如果没有最低限度的工作 example 或不知道您正在使用哪个小部件,要提供帮助有点棘手。我不确定 QtDesigner,但对于 matplotlib 图形,您可以在图形中添加一些 subplots,在这些图形上绘制初始数据(例如一条线),然后更新每个艺术家的数据(线)作为小部件 update 过程的一部分,例如

向图中添加子图

ax1 = self.figure.add_subplot(2,1,1)
ax2 = self.figure.add_subplot(2,1,2)

在每个上画一条初始线

l1, = ax1.plot(np.linspace(0,10,100),np.linspace(0,2,100))
l2, = ax2.plot(np.linspace(0,10,100),np.linspace(0,2,100))

通过从小部件更改 val 来更新行,

def update(val):
    l1.set_ydata(val)
    l2.set_ydata(val)

其中更新绑定到小部件,

widget.on_changed(update)