【发布时间】:2019-03-11 10:31:57
【问题描述】:
我希望通过从文件中读取数据来将图表显示为幻灯片。首先,我希望绘制第一组数据,然后绘制下一组数据,依此类推。 我试过的是:
class MatplotlibWidget(QMainWindow):
def __init__(self):
---
self.playbutton.clicked.connect(self.drawGraph)
self.pausebutton.clicked.connect(self.pauseGraph)
----
def drawGraph(self):
f1 = open('TESTIP2.txt', 'r')
data = np.genfromtxt(f1)
m = np.size(data, 0)
n = np.size(data, 1)
x = data[:, 0].reshape(m, 1)
y = data[:, 1].reshape(m, 1)
iters = m // 4
current_iter=0
self.plotGraph(x,y,iters,current_iter)
def plotGraph(x,y,iters,current_iter):
for i in range(iters):
self.plotDraw(x[current_iter:current_iter+iters],y[current_iter:current_iter+iters])
current_iter=current_iter+iters
time.sleep(1)
def plotDraw(x,y)
self.MplWidget.canvas.axes.clear()
self.MplWidget.canvas.axes.plot(x,y)
self.MplWidget.canvas.axes.legend(('cosinus', 'sinus'), loc='upper right')
self.MplWidget.canvas.axes.set_title('Signal' )
self.MplWidget.canvas.draw()
在循环内部调用plotDraw 函数来显示每组数据,但它只显示最后一组数据。有没有办法在特定时间间隔后显示第一,第二等等。
【问题讨论】:
-
您能提供最小的可验证示例吗? (stackoverflow.com/help/mcve)。
-
您是否尝试在 for 循环中包含
plt.pause(1)? -
@Jack.Yes 我试过 plt.pause(1),但它不起作用。
-
@eyllanesc 。非常感谢您的帮助。
-
@eyllanesc。如何使用按钮或鼠标悬停或单击来暂停正在运行的循环,如果再次单击发生则应恢复
标签: python matplotlib pyqt5