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

2024-10-01 13:42:39 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: thetext屏幕mylinetable绘制数字
1条回答
网友
1楼 · 发布于 2024-10-01 13:42:39

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

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

my_table.get_celld()[(1, 1)].get_text().set_text(tmp)

相关问题 更多 >