使用 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)
我正在使用 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)