为什么我的matplotlib动画不在tkinter上绘制?
我正在尝试把一个 csv
文件里的股票价格动画化,然后在 matplotlib
图表上显示,并把这个图表嵌入到 tkinter
窗口里。问题是,我好像没法让它在 tkinter
中正常工作。
我遇到的问题是,它在 tkinter
窗口中只显示了一个空的 matplotlib
图表,就像图片所示的那样。
输出结果:
当我在一个分开的终端中运行我的另一个脚本来生成价格,并用另一个脚本仅用 matplotlib
动画化时,它是可以正常工作的,但每当我尝试把它放到 tkinter
窗口中时,就不行了。
这是我的代码:
import tkinter
from matplotlib.backends.backend_tkagg import (
FigureCanvasTkAgg, NavigationToolbar2Tk)
from matplotlib import pyplot as plt, animation
import pandas as pd
root = tkinter.Tk()
root.title("Embed Animation to Tkinter frame")
fig = plt.Figure(dpi=100)
ax = fig.add_subplot(111)
line, = ax.plot([], [])
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack()
def animate(i):
data = pd.read_csv('data.csv')
x = data['x_value']
price = data['stock_price']
line.set_data(x, price)
return line,
anim = animation.FuncAnimation(fig, animate, interval=1000)
tkinter.mainloop()
我看了无数关于 matplotlib
动画和 tkinter
的视频,但我还是搞不清楚为什么它不工作。
这个 csv
文件的内容:
1 个回答
0
可能是没有设置绘图选项。试试加上下面的代码:
line=plt.plot(variable, variable, color='skyblue', marker='o', markerfacecolor='blue', markersize=6)[0]