Hi, I've figured this out. There was actually invalid input for the range the way my code really was. The code I had posted was completely wrong, anyway. All good now. :)
The code p.plot(pvar[t,ipos,:]) ax = gca() ax.set_ylim(-10,10) p.show() works with or without a loop wrapped around it. :) Cheers, Christian On Wed, 7 Jan 2009 10:21:30 +1100 Christian Lerrahn <li...@penpal4u.net> wrote: > Hi, > the code given works for me in principle. If I run ipython without the > -pylab flag and do an > > import * from pylab > > at the start instead, I can run this code and it runs fine. (If not, > the plot() will imply the show and everything after that doesn't > matter any more.) > > However, I'm now running into a new problem. I'm doing lots of > separate plots like that (hence the need for a fixed scale). To that > end I run the code in a loop which looks like > > for t in range(maxt): > > fig = p.figure(1) > fig.clf() > ax = fig.add_subplot(111) > p.plot(pvar[t,ipos,:]) > p.plot(pvar[t,:,ipos]) > > ax = gca() > ax.set_ylim(-10,10) # > > filename = "%s-sliced%04d%s.png" % (var,t,dim) > ptime = "%0.3f" % (timevar[t]/3600) > p.title(var + ' at t=' + ptime + 'h') > p.savefig(filename) > p.clf() > > Now, this will result in the error > > File "./swimplot-slice.py", line 63, in <module> > ax.set_ylim(-10,10) > File "/usr/lib/python2.5/site-packages/matplotlib/axes.py", line > 2044, in set_ylim ymin = self.convert_yunits(ymin) > File "/usr/lib/python2.5/site-packages/matplotlib/artist.py", line > 111, in convert_yunits return ax.yaxis.convert_units(y) > File "/usr/lib/python2.5/site-packages/matplotlib/axis.py", line > 979, in convert_units self.converter = > munits.registry.get_converter(x) File > "//usr/lib/python2.5/site-packages/matplotlib/units.py", line 137, in > get_converter converter = self.get_converter( thisx ) File > "//usr/lib/python2.5/site-packages/matplotlib/units.py", line 137, in > get_converter > > With the last line being repeated for every iteration (so I assume). > Then after plenty of error messages like the last one above, I get > > File "//usr/lib/python2.5/site-packages/matplotlib/units.py", line > 130, in get_converter if converter is None and iterable(x): > RuntimeError: maximum recursion depth exceeded > > Where does this recursion come from? Do I have to clear something in > each iteration to avoid that? If so, how do I do that? > > Cheers, > Christian > > > On Tue, 30 Dec 2008 07:31:57 -0800 (PST) > B Clowers <clowe...@yahoo.com> wrote: > > > Christian, > > > > The answer to your second question is a little more involved and I > > think there are a few posts regarding custom colormaps on the > > mailing list that may be of interest...I'd try searching through > > those. I may not be the best person to answer that question. > > > > Also you may be interested in exploring the *kwargs vmin and vmax of > > the imshow command. They may do what you need as well: > > > > http://matplotlib.sourceforge.net/api/axes_api.html?highlight=imshow#matplotlib.axes.Axes.imshow > > > > As for your first question try the following in ipython with the > > -pylab flag: > > > > import numpy as N > > a = N.random.rand(50) > > a*=100 > > plot(a) > > ax = gca() > > ax.set_xlim(0,25) # The set_xlim and set_ylim may be what you're > > looking for... ax.set_ylim(0,50) > > show() > > > > --- On Mon, 12/29/08, Christian Lerrahn <li...@penpal4u.net> wrote: > > From: Christian Lerrahn <li...@penpal4u.net> > > Subject: [Matplotlib-users] Manually limiting value ranges > > To: matplotlib-users@lists.sourceforge.net > > Date: Monday, December 29, 2008, 11:19 PM > > > > Hi, > > I've been trying to do this for a while but just can't get it to > > work. :( > > > > There are 2 things I want to do. > > > > 1. I want to limit the value range in a line plot from > > matplotlib.pyplot.plot(). I thought that clip_box would do exactly > > that but setting something like [[-1,1],[-5,5]] or the like doesn't > > seem to have any effect. > > > > 2. In a 2D map plot from matplotlib.pyplot.imshow(), I would like to > > set the limits for the colour bar manually. I.e. I want the colours > > to be equally distributed over a fixed range. > > > > In both cases, the background to my attempt of using fixed values is > > that I'm producing a time series of plots via script and want all > > the plots to be directly comparable. > > > > Did I overlook this in the examples (or the documentation) or is > > there really no simple way of doing this? > > > > Cheers, > > Christian > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Matplotlib-users mailing list > > Matplotlib-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > > > > > > > > ------------------------------------------------------------------------------ > Check out the new SourceForge.net Marketplace. > It is the best place to buy or sell services for > just about anything Open Source. > http://p.sf.net/sfu/Xq1LFB > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users