1

tKinterスケールウィジェットを使用して入力値を変更し、入力のさまざまな変更にグラフがどのように反応するかを確認できる小さなアプリがあります。スケールを移動するたびに、リストと再プロットの計算をやり直すイベントにバインドされます。ちょっと遅いです。

今、私は全体を再プロットしていますが、数分の使用後、1つの軸が他の軸の上に積み重なっています。

deltaPlot = Figure(figsize=(4,3.5), dpi=75, frameon=False)
c = deltaPlot.add_subplot(111)
c.set_title('Delta')
deltaDataPlot = FigureCanvasTkAgg(deltaPlot, master=master)
deltaDataPlot.get_tk_widget().grid(row=0,rowspan=2)

そしてメインループが実行されます

c.cla()
c.plot(timeSpread,tdeltas,'g-')
deltaDataPlot.show()

最初のプロットはクリアされていますが、前述したように、軸はスタックしています(わずかに変更されたデータポイントに対応して、毎回再描画されるため)。誰かが修正を知っていますか?

4

1 に答える 1

1

速度を向上させるために、できることがいくつかあります。

プロットremoveによって生成された行でメソッドを実行します。

# inside the loop
line, = c.plot(timeSpread,tdeltas,'g-')
deltaDataPlot.show()
...
line.remove()

または、線を再利用して、座標を適切に更新します。

# outside the loop
line, = c.plot(timeSpread,tdeltas,'g-')

# inside the loop
deltaDataPlot.show()
line.set_data(timeSpread,tdeltas)

Line2d のドキュメントは、ここにあります。

アニメーションに関するクックブックの記事もお読みください。

HTH

于 2012-08-06T16:47:27.050 に答える