使用PyQt在matplotlib中添加多个数字

时间:2015-08-26 11:28:27

标签: matplotlib pyqt4

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

我检查了PyQt4附带的MatplotlibWidget类的给定代码。它使用以下代码创建图。

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

但是当我检查如何添加更多数据时,大多数在线解决方案都使用

pyplot.figure()

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

任何人都知道如何在不使用pyplot的情况下添加新数据?

1 个答案:

答案 0 :(得分:2)

如果没有最小的工作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)

其中update绑定到小部件,

widget.on_changed(update)