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

Reply via email to