如何动态更新Matplotlib表单元格文本

use*_*723 3 python matplotlib python-2.7

我的代码读取两个数字文件,并在窗口上部的绘图窗口中动态绘制它们。我还在情节下面放了一张桌子。我想采用最新值绘制它们,并使用这些数字更新表格中的单元格。第一次调用“ 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()
Run Code Online (Sandbox Code Playgroud)

这显示了结果图。请注意,红线/蓝线会设置动画并绘制几秒钟

Imp*_*est 7

原则上,该行my_table._cells[(1, 1)]._text.set_text(tmp)应更新表格单元格数据。它在这里不起作用的原因blitting是使用了它。它可以帮助刚刚关闭在调用阻击器FuncAnimationblit=False。如果这样不能解决问题,则需要fig.canvas.draw()在循环内手动制作动画。

请注意,最好不要使用“私有”属性。因此,我建议

my_table.get_celld()[(1, 1)].get_text().set_text(tmp)
Run Code Online (Sandbox Code Playgroud)