Hi Benjamin, and thanks for looking into this. The traceback you showed in your post is the original one that I see before applying the second patch. After applying the second patch, I do not see this traceback any more, and I get the results I expect. In other words, I'm unable to reproduce the behaviour you get (with the patches applied to current master). Would it be possible for you to send the code in quickshow.py that triggers this behaviour?
You seemed uncertain that you had the full patch. The second patch only changes a single line of code, namely line 1243 of image.py. An excerpt of the patch: - figsize = [x / float(dpi) for x in arr.shape[::-1]] + figsize = [x / float(dpi) for x in (arr.shape[1], arr.shape[0])] For me, this is enough to make imshow work for MxNx3 (or 4). Cheers, Jostein. Den 23:00 16. april 2012 skrev Benjamin Root <ben.r...@ou.edu> følgende: > > On Sat, Apr 7, 2012 at 11:25 AM, Jostein Bø Fløystad > <jostein.floys...@gmail.com> wrote: >> >> I've had problems saving MxNx3 (RGB) numpy arrays as images using >> imsave. It fails with an exception, and the problem seems to be line >> 1243 in image.py: >> >> figsize = [x / float(dpi) for x in arr.shape[::-1]] >> >> The purpose of arr.shape[::-1] seems to be to reorder the height and >> width dimensions. It works as intended for MxN arrays, but not NxMx3 >> arrays -- they cause a function to complain about an argument too >> many. >> >> I have modified the above line to use (arr.shape[1], arr.shape[0]) >> instead of arr.shape[::-1], and that solves the problem for me, and I >> get the output I expect (and the code still passes all tests it should >> pass). However, there could very well be subtleties in the codebase >> that I don't know about. >> >> The attached patches add a simple test case, the above mentioned >> change and a few updates to the documentation of imsave. >> >> Best, >> >> Jostein. >> > > Jostein, > > That second patch certain fixes that part of the bug, but I still can't save > an NxMx3 (or 4) array using imsave(). Are you sure this is all of the > patch? > > I get the following exception: > > ``` > Traceback (most recent call last): > File "quickshow.py", line 106, in <module> > plt.imsave(stem + '.png', cm(d)) > File > "/home/broot/.local/lib/python2.7/site-packages/matplotlib-1.2.x-py2.7-linux-x86_64.egg/matplotlib/pyplot.py", > line 1757, in imsave > return _imsave(*args, **kwargs) > File > "/home/broot/.local/lib/python2.7/site-packages/matplotlib-1.2.x-py2.7-linux-x86_64.egg/matplotlib/image.py", > line 1244, in imsave > fig = Figure(figsize=figsize, dpi=dpi, frameon=False) > File > "/home/broot/.local/lib/python2.7/site-packages/matplotlib-1.2.x-py2.7-linux-x86_64.egg/matplotlib/figure.py", > line 269, in __init__ > self.bbox_inches = Bbox.from_bounds(0, 0, *figsize) > TypeError: from_bounds() takes exactly 4 arguments (5 given) > ``` > > Cheers! > Ben Root > ------------------------------------------------------------------------------ Better than sec? Nothing is better than sec when it comes to monitoring Big Data applications. Try Boundary one-second resolution app monitoring today. Free. http://p.sf.net/sfu/Boundary-dev2dev _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel