2

操作ごとに新しい図形を描きたいdraw()。オブジェクトが作成された後に更新されることのない静的な図形を描画するためのコードをつなぎ合わせました。しかし、新しいデータが提示されたときに再描画できるようにしたいと考えています。

再描画可能な図を実行するようにコードを構成するにはどうすればよいですか?


問題のコードは次のとおりです。これは 1 回だけ描画します。

from numpy import arange, sin, pi
import matplotlib
matplotlib.use('WXAgg')

from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.backends.backend_wx import NavigationToolbar2Wx

class CanvasPanel(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        #self.size = (800, 50)
        self.figure = Figure()
        self.figure.set_size_inches( (8,1) )
        self.figure.set_dpi(80)
        #self.axes = self.figure.add_subplot(111)
        self.canvas = FigureCanvas(self, -1, self.figure )
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Fit()

    def draw(self):
        self.axes = self.figure.add_subplot(111)
        t = arange(0.0, 3.0, 0.01)
        s = sin(2 * pi * t)
        self.axes.plot(t, s)
        #time.sleep(5)
        #self.figure.clear()
4

1 に答える 1

2

@acattle が彼のコメントで提案したように、プロットを更新した後、これらの行を描画サブルーチンに追加するだけです。

 self.canvas.draw()
 self.canvas.Refresh()
于 2013-04-25T06:26:10.343 に答える