def __init__(self): wxFrame.__init__(self, None, -1, "Test embedded wxFigure") self.fig = Figure(self, -1, (5, 4), 75) self.toolbar = Toolbar(self.fig) self.toolbar.Realize() # On Windows, default frame size behaviour is incorrect # you don't need this under Linux tw, th = self.toolbar.GetSizeTuple() fw, fh = self.fig.GetSizeTuple() self.toolbar.SetSize(wxSize(fw, th)) # Create a figure manager to manage things self.figmgr = FigureManager(self.fig, 1, self) # Now put all into a sizer sizer = wxBoxSizer(wxVERTICAL) # This way of adding to sizer prevents resizing #sizer.Add(self.fig, 0, wxLEFT|wxTOP) # This way of adding to sizer allows resizing sizer.Add(self.fig, 1, wxLEFT | wxTOP | wxGROW) # Best to allow the toolbar to resize! sizer.Add(self.toolbar, 0, wxGROW) self.SetSizer(sizer) self.Fit() EVT_TIMER(self, TIMER_ID, self.onTimer)
from matplotlib.backends import Figure from matplotlib.axes import Subplot import Numeric as numpy import gtk win = gtk.Window() win.set_name("Embedding in GTK") win.connect("destroy", gtk.mainquit) win.set_border_width(5) vbox = gtk.VBox(spacing=3) win.add(vbox) vbox.show() f = Figure(figsize=(5, 4), dpi=100) a = Subplot(f, 111) t = numpy.arange(0.0, 3.0, 0.01) s = numpy.sin(2 * numpy.pi * t) a.plot(t, s) f.add_axes(a) f.show() vbox.pack_start(f) button = gtk.Button('Quit') button.connect('clicked', lambda b: gtk.mainquit()) button.show() vbox.pack_start(button) win.show()