Hi Eric, I'm using matplotlib 0.98 (which comes with the Enthought distribution) so that would explain why there was an issue.
Thanks for your help! Thomas Eric Firing wrote: > 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