【发布时间】:2020-10-09 11:16:31
【问题描述】:
我正在尝试在不使用按钮的情况下使用 FigureCanvasTkAgg 连续自动更新 tkinter 中的图表。
这是我目前编写的代码
import random
import tkinter as tk
import seaborn as sb
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
root = tk.Tk()
def cplot():
xCord = [random.randint(0,10) for i in range(5)]
yCord = [random.randint(0,10) for i in range(5)]
#defining heatmap dimensions
fig, ax = plt.subplots()
#ploting heat map with x and y coordinates
sb.kdeplot(xCord, yCord, shade = True, cmap = "Reds")
ax.invert_yaxis()
plt.axis("off")
plt.show()
root.after(1, cplot)
return fig
fig = cplot()
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack()
root.after(1, cplot)
root.mainloop()
【问题讨论】:
-
你在
after之前调用return,这将永远不会被调用,请切换这些语句的顺序。 -
@Mike67 我交换了这两行代码的位置。图表现在会自动刷新,但是 tkinter 只显示第一个图表,之后不会更新。