プロジェクトでは、単純な調和運動シミュレーター (時間の経過とともに質量がどのように振動するか) に取り組んでいます。私は正しく生成されたデータを取得しており、すでに tkinter フレームワーク内で生成されたグラフを持っています。現時点では、グラフを時間の経過とともにアニメーションとして表示することが目的の静的グラフのみが表示されます。
簡単にするために、次のコードを使用してプログラムのモックアップを作成しました。
#---------Imports
from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import tkinter as Tk
from tkinter import ttk
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
#---------End of imports
fig, ax = plt.subplots()
x = np.arange(0, 2*np.pi, 0.01) # x-array
line, = ax.plot(x, np.sin(x))
def animate(i):
line.set_ydata(np.sin(x+i/10.0)) # update the data
return line,
ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), interval=25, blit=False)
#plt.show() #What I want the object in tkinter to appear as
root = Tk.Tk()
label = ttk.Label(root,text="SHM Simulation").grid(column=0, row=0)
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.show()
canvas.get_tk_widget().grid(column=0,row=1)
Tk.mainloop()
このコードは、コメントを外したときに tkinter フレームワークで必要なアニメーションを表示しますplt.show()
。そのアニメーションを tkinter のフレームワーク内に配置できるようにしたいと考えています。
また、matplotlib の Web サイトにアクセスして、すべてのアニメーションの例を見ましたが、どれも役に立ちませんでした。私はtk にアニメーション化された matplotlib を埋め込むことも検討しましたが、これは pyplot フィギュア内に tkinter ボタンを配置しましたが、フィギュアを tkinter フレーム内に配置したいと考えています。
plt.show()
明確にするために、コメントを外したときに作成されたアニメーションをtkinterフレームに配置できるようにしたいと思いroot = tk()
ます。