2012-05-24 21 views

risposta

31

Questo è un esempio minimo per un pannello con una tela 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

Ehi, puoi scrivere un n possibilità di impostare anche la dimensione della tela? – aitchnyu

1

Definizione del telaio:

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() 

o definire la dimensione del pannello:

class CanvasPanel(wx.Panel): 
    def __init__(self, parent): 
     wx.Panel.__init__(self, parent,size=wx.Size(806, 450)) 
... 
Problemi correlati