Thanks a lot! Problem solved! Stefanie ----- Original Message ----- From: "Matthias Michler" <matthiasmich...@gmx.net> To: <matplotlib-users@lists.sourceforge.net> Sent: Wednesday, May 13, 2009 2:16 PM Subject: Re: [Matplotlib-users] Subplots
> Hello Stefanie, > > I think the problem is that you try to initialise a subplot with > subplot(112) > which is not possible, because the first to numbers in 112 define the > subplot > structure / geometry (here 1 by 1) and the last number give the index of > the > subplot. > In general you could use N x M (N rows and M columns) for subplots by > subplot(N,M,index) > where 'index' would be a number between 1 and N * M. > > best regards Matthias > > On Wednesday 13 May 2009 14:02:57 Stefanie Lück wrote: >> Hello! >> >> I'm trying to draw several plots on after the other in a wxScrolledPanel >> but I got the error message: >> >> Traceback (most recent call last): >> File "D:\Eigene Datein\Python\current\RNAiscan\Test\sample.py", line >> 96, >> in <m odule> >> frame = MyFrame() >> File "D:\Eigene Datein\Python\current\RNAiscan\Test\sample.py", line >> 56, >> in __ init__ >> self.plot_data(self.fig) >> File "D:\Eigene Datein\Python\current\RNAiscan\Test\sample.py", line >> 90, >> in pl ot_data >> a = figure.add_subplot(id) >> File "C:\python25\lib\site-packages\matplotlib\figure.py", line 689, in >> add_su bplot >> a = subplot_class_factory(projection_class)(self, *args, **kwargs) >> File "C:\python25\lib\site-packages\matplotlib\axes.py", line 7207, in >> __init_ _ >> raise ValueError( 'Subplot number exceeds total subplots') >> ValueError: Subplot number exceeds total subplots >> >> Here's my code: >> >> # -*- coding: latin1 -*- >> import sys >> >> import wx >> import wx.lib.scrolledpanel as SP >> from wx.lib.mixins.listctrl import CheckListCtrlMixin >> >> from matplotlib.backends.backend_wx import FigureCanvasWx >> from matplotlib.figure import Figure >> import matplotlib.numerix as numpy >> >> from pylab import array, arange, sin, cos, exp, pi, randn, normpdf, >> meshgrid, \ convolve >> >> d = {1: (' Contig5535', '230 '), 2: (' Contig5534', '3240 '), 3: (' >> test', >> '574')} >> >> class CheckListCtrl(wx.ListCtrl, CheckListCtrlMixin): >> def __init__(self, parent): >> wx.ListCtrl.__init__(self, parent, -1, >> style=wx.LC_REPORT|wx.LC_VRULES|wx.LC_HRULES|wx.LC_SORT_ASCENDING) >> CheckListCtrlMixin.__init__(self) >> self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) >> >> def OnItemActivated(self, evt): >> self.ToggleItem(evt.m_itemIndex) >> >> def OnCheckItem(self, index, flag): >> data = self.GetItemData(index) >> title = d[data][1] >> if flag: >> what = "checked" >> else: >> what = "unchecked" >> >> class MyFrame(wx.Frame): >> >> def __init__(self): >> wx.Frame.__init__(self, None, -1, "My Frame", size=(300, 300)) >> self.panel = SP.ScrolledPanel(self, -1) >> >> self.list = CheckListCtrl(self.panel) >> self.list.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)) >> >> vbox = wx.BoxSizer(wx.VERTICAL) >> >> self.fig = Figure() >> self.canvas = FigureCanvasWx(self.panel, -1, self.fig) >> self.plot_data(self.fig) >> vbox.Add(self.list,0, wx.EXPAND) >> vbox.Add(self.canvas, 1, wx.LEFT|wx.TOP|wx.GROW) >> >> self.panel.SetSizer(vbox) >> self.panel.SetAutoLayout(1) >> self.panel.SetupScrolling() >> >> self.list.InsertColumn(0, "ID") >> self.list.InsertColumn(1, "Nr. of Hits") >> for key, data in d.iteritems(): >> index = self.list.InsertStringItem(sys.maxint, data[0]) >> self.list.SetStringItem(index, 1, data[1]) >> #self.list.SetStringItem(index, 2, data[2]) >> self.list.SetItemData(index, key) >> self.list.SetColumnWidth(0, wx.LIST_AUTOSIZE) >> self.list.SetColumnWidth(1, 100) >> self.Show() >> >> def plot_data(self, figure): >> liste2 = ['Contig5535_range.txtcounts.txt', >> 'Contig5534_range.txtcounts.txt'] id = 111 >> >> for q in liste2: >> f = open(q, 'r') >> data = f.readlines() >> liste3 = [] >> liste4 = [] >> for line in data: >> line = line.strip() >> x = line.split(" ") >> liste3.append(int(x[0])) >> liste4.append(int(x[1])) >> >> a = figure.add_subplot(id) >> a.plot(liste3,liste4) >> id = id + 1 >> >> if __name__ == '__main__': >> app = wx.PySimpleApp() >> frame = MyFrame() >> frame.Show(True) >> app.MainLoop() >> >> Has someone an idea how to solve this? >> Thank in advance >> Stefanie > > > > ------------------------------------------------------------------------------ > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK > i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users