Python
 Computer >> コンピューター >  >> プログラミング >> Python

matplotlibアニメーションをtkinterフレームに埋め込む


matplotlibアニメーションをtkinterフレームに埋め込むには、次の手順を実行できます

ステップ

  • 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。

  • Tkのトップレベルウィジェットを作成します これは主にアプリケーションのメインウィンドウを表します

  • このウィジェットのタイトルを設定します。

  • 現在の図に軸を追加して、現在の軸にします。

  • 新しいフィギュアを作成するか、既存のフィギュアをアクティブにします。

  • 「ax」を追加します サブプロットの配置の一部として図に。

  • linewidth =2でダミーの折れ線グラフを作成します 。

  • フィギュアがレンダリングされるキャンバスを作成します。

  • 操作するフィギュアキャンバスを作成します。

  • キープレスを作成します tkinterの冬をやめるイベント。

  • 関数*animate *を繰り返し呼び出してアニメーションを作成します 。

  • 図を表示するには、 Show()を使用します メソッド。

import tkinter
from matplotlib.backends.backend_tkagg import (
    FigureCanvasTkAgg, NavigationToolbar2Tk)
from matplotlib.backend_bases import key_press_handler
from matplotlib import pyplot as plt, animation
import numpy as np

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

root = tkinter.Tk()
root.wm_title("Embedding in Tk")

plt.axes(xlim=(0, 2), ylim=(-2, 2))
fig = plt.Figure(dpi=100)
ax = fig.add_subplot(xlim=(0, 2), ylim=(-1, 1))
line, = ax.plot([], [], lw=2)

canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()

toolbar = NavigationToolbar2Tk(canvas, root, pack_toolbar=False)
toolbar.update()

canvas.mpl_connect(
    "key_press_event", lambda event: print(f"you pressed {event.key}"))
canvas.mpl_connect("key_press_event", key_press_handler)

button = tkinter.Button(master=root, text="Quit", command=root.quit)
button.pack(side=tkinter.BOTTOM)

toolbar.pack(side=tkinter.BOTTOM, fill=tkinter.X)
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH, expand=1)

def init():
    line.set_data([], [])
    return line,

def animate(i):
    x = np.linspace(0, 2, 1000)
    y = np.sin(2 * np.pi * (x - 0.01 * i))
    line.set_data(x, y)
    return line,

anim = animation.FuncAnimation(fig, animate, init_func=init,frames=200, interval=20, blit=True)

tkinter.mainloop()

出力

次の出力が生成されます-

matplotlibアニメーションをtkinterフレームに埋め込む


  1. MatplotlibアニメーションがIPythonNotebookで機能しませんか?

    matplotlibでプロットをアニメーション化するには、次の手順を実行できます- 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。 形状10X10寸法のランダムデータを作成します。 subplots()を使用して、図とサブプロットのセットを作成します メソッド。 関数*func *、を繰り返し呼び出してアニメーションを作成します FuncAnimation()クラスを使用します。 関数の等高線値を更新するために、FuncAnimation()クラスで使用できるanimateメソッドを定義できます。 図を表示するには、

  2. フラスコでMatplotlibを表示する方法は?

    Flaskでプロットを表示するには、次の手順を実行できます- 小さなアプリケーションを作成します。 Flaskアプリケーションを実行するには、現在のディレクトリに移動します。 $ export FLASK_APP =file.py $フラスコ実行 ブラウザを開き、url:http://127.0.0.1:5000 /print-plot/を押します 図をプロットするために、ランダムを使用してxとyのデータポイントを作成できます。 作成した軸にデータポイントxとyをプロットします。 図をpng図形式で記述します。 BytesIOのコンテンツ全体を取得します オブジェクト。 例