Thomas Robitaille wrote: > Hi Eric, > > Thanks for your help! Unfortunately, ax.set_autoscale_on(False) does not > work - I had already tried this before unsuccessfully. Consider the > following: > > from pylab import * > import numpy as np > > def test(): > fig = figure() > ax = fig.add_subplot(111) > a = np.zeros((100,100)) > b = np.zeros((10,10)) > ax.imshow(a) > ax.set_autoscale_on(False) > ax.contour(b) > fig.canvas.draw() > > Running test() should result in a subplot with the view interval 0 to > 99, but instead goes from 0 to 9. > > Is this normal?
On my system, it does go from 0-99. What mpl version are you using? I made the change to using autoscale_view in the ContourSet initializer, which obeys the setting by set_autoscale_on, on November 17. Prior to that, xlim and ylim were being set directly, so the workaround if you have an earlier version would be to save those values (using ax.get_xlim(), ax.get_ylim()) and then restore them with ax.set_xlim etc. Eric > > Thanks, > > Thomas > > Eric Firing wrote: >> Thomas Robitaille wrote: >>> Hello, >>> >>> I am using matplotlib to show an image using: >>> >>> fig = figure() >>> ax = fig.add_subplot(111) >>> ax.imshow(image) >>> >>> After doing this, I want to find the contours for a different image >>> (with different dimensions), but I do not want to interact with the >>> current figure or axes, I just want to retrieve the set of >>> LineCollection objects for the contours. The issue is that if I do >>> >>> c = contour(image2) >>> >>> the contours are stored inside c, but at the same time they are >>> plotted in the current figure. If I use >>> >>> ax.contour(image2) >>> >>> then the contours are not plotted immediately, but the view interval >>> has already been changed inside ax. >> >> The workaround for now may be to call ax.set_autoscale_on(False) before >> your call to ax.contour. You could also save the datalim before and >> restore them afterwards. >> >> This sort of request has come up before, though, and the longer-term >> solution might be some refactoring in contour.py. As it is, everything >> is done when the ContourSet is instantiated; one does not have the >> option of simply calculating the contours, for example. >> >> Eric >> >>> >>> So essentially, I am wondering if it is possible to retrieve a set of >>> LineCollection objects without acting in any way on the current >>> figure/axes. >> >>> >>> Thanks for any help, >>> >>> Thomas >>> >>> ------------------------------------------------------------------------------ >>> >>> >>> >>> Open Source Business Conference (OSBC), March 24-25, 2009, San >>> Francisco, CA >>> -OSBC tackles the biggest issue in open source: Open Sourcing the >>> Enterprise >>> -Strategies to boost innovation and cut costs with open source >>> participation >>> -Receive a $600 discount off the registration fee with the source >>> code: SFAD >>> http://p.sf.net/sfu/XcvMzF8H >>> _______________________________________________ >>> Matplotlib-users mailing list >>> Matplotlib-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users