2
각 draw()
작업에서 새로운 그림을 그리고 싶습니다. 고정 된 그림을 그릴 때 을 결코 업데이트하지 않은 채 객체를 작성한 후에 함께 code을 연결했습니다. 그러나 나는 새로운 데이터로 제시 될 때 을 다시 그릴 수 있기를 원합니다.wxpython 패널에서 mathplotlib 그림을 다시 그리는 방법은 무엇입니까?
코드를 다시 그리기 가능 수치로 구성하려면 어떻게해야합니까? 당신이해야 할 모든 후, 당신의 그림 서브 루틴에 다음 줄을 추가하고,
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()
다시 그리기를 시도한 적이 있습니까? –
나는 실제로 진행할 방법을 모른다. – aitchnyu
matplotlib에 익숙하지 않다.하지만 문제가 있다면 추가 한 새로운 플롯이 나타나지 않는다. FigueCanvas에 일종의 Refresh() 메소드가 있는가? 전화 해봤습니까? 그렇지 않다면 새 플롯을 추가 한 후 패널을 새로 고침 (self.Refresh()) 했습니까? 어쩌면 self.Layout() (레이아웃() 도움이된다면, init "self.SetAutoLayout (True)"assass 것이 좋습니다). – acattle