我的代码读取两个数字文件,并在窗口上部的绘图窗口中动态绘制它们。 我还在情节下方放了一张桌子。 我想在绘制它们时采用最新值,并使用这些数字更新表格中的单元格。 第一次调用“set_text”时,表格会在屏幕上更新,但即使表格正在更新,屏幕上显示的内容也不会随时更改。 我需要添加什么才能让表在更新时显示值。
<snip>
def update_line(num, sdata, line1, d2data, line2, my_table):
for i in range(0, num):
line1.set_data(sdata[0, :num], sdata[1,:num])
line2.set_data(d2data[0, :num], d2data[1,:num])
tm.sleep(0.1)
tmp = sdata[1, num]
my_table._cells[(1, 1)]._text.set_text(tmp)
return line1,line2, my_table,
line_ani = animation.FuncAnimation(fig, update_line, 149, fargs=(d2data, f, d1data,l, the_table), interval=1, blit=True, repeat=False)
plt.show()
This shows the resulting figure. Note that the red/blue lines animate and draw over several seconds
答案 0 :(得分:4)
原则上,行<mark>
应更新表格单元格数据。它在这里不起作用的原因是使用了my_table._cells[(1, 1)]._text.set_text(tmp)
。在致电blitting
:FuncAnimation
时,关闭blitting可能会有所帮助。如果这不能解决问题,则需要在循环内使用blit=False
手动执行动画。
请注意,最好不要使用&#34; private&#34;属性。因此我建议
fig.canvas.draw()