如何在Tkinter画布上更新matplotlib子图?

起始

我想更新嵌入到Canvastkinter GUI中的子图。无论我尝试什么,我的意图都会失败。看看我有多远:

from tkinter import *
from matplotlib.backends.backend_tkagg import (FigureCanvasTkAgg, NavigationToolbar2Tk)
import matplotlib.pyplot as plt
import time

root = Tk()

figId = plt.figure()

canvas = FigureCanvasTkAgg(figId, master=root)
canvas.get_tk_widget().pack()
canvas.draw()

vals1 = [5, 6, 3, 9]
vals2 = vals1

for i in range(0, len(vals1)+1):
    toPlot = vals1[0:i]
    plt.subplot(211).plot(toPlot)
    plt.subplot(212).plot(toPlot)
    time.sleep(1)

root.mainloop()

我发现做类似的事情plt.pause(.1)不是正确的方法。对于我来说,似乎必须介绍matplotlib.animation,但是我真的不知道如何执行此操作。

起始

我找到了答案:

import random
from itertools import count
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from tkinter import *
from matplotlib.backends.backend_tkagg import (FigureCanvasTkAgg, NavigationToolbar2Tk)

x_vals = []
y_vals1 = []
y_vals2 = []

index = count()

root = Tk()
figId = plt.figure()
canvas = FigureCanvasTkAgg(figId, master=root)
canvas.get_tk_widget().pack()
canvas.draw()

def animate(i):
    x_vals.append(next(index))
    y_vals1.append(random.randint(0, 5))
    y_vals2.append(random.randint(0, 5))
    plt.cla()
    plt.plot(x_vals, y_vals1)
    plt.plot(x_vals, y_vals2)

ani = FuncAnimation(plt.gcf(), animate, interval=1000)

root.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Tkinter画布上更新情节?

来自分类Dev

如何在Tkinter画布上更新情节?

来自分类Dev

在画布上显示matplotlib图

来自分类Dev

如何使Tkinter画布更新?

来自分类Dev

无法在画布上更新图

来自分类Dev

如何在画布中隐藏动画子图

来自分类Dev

如何在画布上绘制3位图

来自分类Dev

如何在Matplotlib子图轴上绘制字母替换数字?

来自分类Dev

如何在Tkinter中更新,暂停和清除FigureCanvasTkAgg画布

来自分类Dev

如何在python-Tkinter的画布文本上放置轮廓

来自分类Dev

如何在 tkinter 的画布上添加标签小部件?

来自分类Dev

matplotlib:如何在画布边界上显示标记

来自分类Dev

Tkinter中的matplotlib画布上的光标

来自分类Dev

Tkinter中的matplotlib画布上的光标

来自分类Dev

颤抖的画布,如何在子小部件上绘画?

来自分类Dev

单击新的单选按钮PySimpleGUI时如何清除Matplotlib子图画布图?

来自分类Dev

如何在Matplotlib中将子图旋转45度?

来自分类Dev

如何在 tkinter 画布上创建文本并更改画布中的文本?

来自分类Dev

Python tkinter - 如何创建一个在画布上滚动的实时 xy 图

来自分类Dev

更新Tkinter画布上的文本字段

来自分类Dev

如何更新画布上的图像?

来自分类Dev

如何在 Tkinter 的 matplotlib 子图上获取按钮?

来自分类Dev

如何在matplotlib中缩小X轴上的图?

来自分类Dev

Python Matplotlib 在画布中更新条形图

来自分类Dev

如何从循环更新matplotlib图?

来自分类Dev

如何在子图的轴上添加标签

来自分类Dev

如何在 tkinter 上创建后退按钮/或删除画布上的所有小部件?

来自分类Dev

如何防止文本在tkinter画布上重叠

来自分类Dev

Tkinter-如何隐藏画布上的标签?

Related 相关文章

热门标签

归档