2012-05-24 8 views

답변

31

이는하기 matplotlib 캔버스와 패널의 최소한의 예이다

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 
from matplotlib.figure import Figure 

import wx 

class CanvasPanel(wx.Panel): 
    def __init__(self, parent): 
     wx.Panel.__init__(self, parent) 
     self.figure = Figure() 
     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): 
     t = arange(0.0, 3.0, 0.01) 
     s = sin(2 * pi * t) 
     self.axes.plot(t, s) 


if __name__ == "__main__": 
    app = wx.PySimpleApp() 
    fr = wx.Frame(None, title='test') 
    panel = CanvasPanel(fr) 
    panel.draw() 
    fr.Show() 
    app.MainLoop() 

enter image description here

+3

이봐, 쓸 수 있니? n 옵션을 사용하여 캔버스의 크기를 설정할 수도 있습니다. – aitchnyu

1

프레임 크기 정의 :

if __name__ == "__main__": 
    app = wx.App() 
    fr = wx.Frame(None, title='test', size=wx.Size(806, 450)) 
    panel = CanvasPanel(fr) 
    panel.draw() 
    fr.Show() 
    app.MainLoop() 

하거나 패널 크기 정의 :

class CanvasPanel(wx.Panel): 
    def __init__(self, parent): 
     wx.Panel.__init__(self, parent,size=wx.Size(806, 450)) 
... 
관련 문제