matplotlib und sizer
Verfasst: Mittwoch 1. Juli 2009, 14:36
Hallo,
ich beschäftige mich gerade mit matplotlib und möchte ein Figure erzeugen Ein Figure im ganzen Frame darzustellen ist keine Problem. Ich möchte jedoch das Figure auf einem Panel darstellen (Für das eigentliche Programm) und das Figure soll sich auch bei veränderbarer Größe des Frames mit verändern.
Entweder hab ich das mit den Sizern noch nicht richtig verstanden oder ich weis auch nicht.
Vielen Dank für eure Anteilnahme
Gruss
Stefan
Erst das Beispiel von Matplotlib:
http://matplotlib.sourceforge.net/examp ... n_wx2.html
und dann meine Idee wie ich es verändern wollte:
Das Figure ändert aber leider seine Größe nicht wenn man das Frame maximiert.
ich beschäftige mich gerade mit matplotlib und möchte ein Figure erzeugen Ein Figure im ganzen Frame darzustellen ist keine Problem. Ich möchte jedoch das Figure auf einem Panel darstellen (Für das eigentliche Programm) und das Figure soll sich auch bei veränderbarer Größe des Frames mit verändern.
Entweder hab ich das mit den Sizern noch nicht richtig verstanden oder ich weis auch nicht.
Vielen Dank für eure Anteilnahme
Gruss
Stefan
Erst das Beispiel von Matplotlib:
http://matplotlib.sourceforge.net/examp ... n_wx2.html
und dann meine Idee wie ich es verändern wollte:
Das Figure ändert aber leider seine Größe nicht wenn man das Frame maximiert.
Code: Alles auswählen
#!/usr/bin/env python
from numpy import arange, sin, pi
import matplotlib
matplotlib.use('WXAgg')
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.figure import Figure
import wx
class CanvasFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,
'CanvasFrame',size=(550,350))
panel=wx.Panel(self)
self.figure = Figure()
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)
self.canvas = FigureCanvas(panel, -1, self.figure)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(panel, 1, wx.EXPAND)
def OnPaint(self, event):
self.canvas.draw()
class App(wx.App):
def OnInit(self):
frame = CanvasFrame()
frame.Show(True)
return True
app = App(0)
app.MainLoop()