我正在使用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的情况下添加新数据?
答案 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)