From: Christian L. <li...@pe...> - 2009-01-06 23:20:13
|
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 <clo...@ya...> 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...@pe...> wrote: > From: Christian Lerrahn <li...@pe...> > Subject: [Matplotlib-users] Manually limiting value ranges > To: mat...@li... > 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 > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > > |