On 2012-10-02 20:15:51 +0000, Damon McDougall said:

> On Tue, Oct 2, 2012 at 9:09 PM, Eric Firing 
> <efir...@hawaii.edu> wrote:
>> On 2012/10/02 9:21 AM, Michael Aye wrote:
>>>>>>>>> 
>>>>>>>> How nice of you to ask! ;)
>>>>>>>> Indeed: I had the case that image arrays inside an ImageGrid where
>>>> shown with some white overhead area around, e.g. for an image of 100
>>>> pixels on the x-axis, the imshow resulted in an x-axis that went from
>>>> -10 to 110. I was looking for a simple way to suppress that behavior
>>>> and let imshow instead use the exact image extent. I believe that the
>>>> plot command has such a flag, hasn't it? (I.e. to use the exact xdata
>>>> range and not try to beautify the plot?
>>>>>>>> 
>>>>>>>> Michael
>>>>>>>> 
>>>>>>> 
>>>>>>> Is the 'extent' keyword what you're looking for?
>>>>>>> 
>>>>>> 
>>>>>> No, because it needs detail. I was looking for a boolean switch that
>>>> basically says: Respect the data, not beauty.
>>>>> 
>>>>> I don't understand what you mean by 'beauty'. If your image is 100
>>>>> pixels wide and 50 pixels tall, what is it about extent=[0,100,0,50]
>>>>> that doesn't do what you want?
>>>>> 
>>>> As I wrote, that's not what is happening. I get extent=[-10,110,0,50].
>>>> 
>>>> 
>>>> Which version of matplotlib are you using?  Also, are you on a 32-bit
>>>> machine or a 64-bit machine.  This might be related to a bug we have
>>>> seen recently.
>>> 
>>> I am using mpl 1.1.0 from EPD 7.3-2 on a 64-bit Mac OSX.
>>> 
>>> Thanks for the effort Damon. I should have been starting with an
>>> example script from the beginning.
>>> I believe the problem appears only for subplots in the case of sharex
>>> =sharey = True:
>> 
>> Aha!  This is a real bug. It may take a bit of work to track it down.
>> Would you enter it, with this test script, as a github issue, please?
>> 
>> Thank you.
>> 
>> Eric
>> 
>>> 
>>> from matplotlib.pyplot import show, subplots
>>> from numpy import arange, array
>>> 
>>> arr = arange(10000).reshape(100,100)
>>> l = [arr,arr,arr,arr]
>>> narr = array(l)
>>> 
>>> fig, axes = subplots(2,2,sharex=True,sharey=True)
>>> 
>>> for ax,im in zip(axes.flatten(),narr):
>>> ax.imshow(im)
>>> 
>>> show()
>>> 
>>> One can see that all the 4 axes show the array with an extent of
>>> [-10,110, 0, 100] here.
>>> 
>>> Michael
>>> 
>>> 
>>>> 
>>>> Ben Root
>>>> 
>>>> ------------------------------------------------------------------------------
>>>> Don't let slow site performance ruin your business. Deploy New Relic APM
>>>> Deploy New Relic app performance management and know exactly
>>>> what is happening inside your Ruby, Python, PHP, Java, and .NET app
>>>> Try New Relic at no cost today and get our sweet Data Nerd shirt too!
>>>> http://p.sf.net/sfu/newrelic-dev2dev
>>>> _______________________________________________
>>>> Matplotlib-users mailing list
>>>> Matplotlib-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>> 
>>> 
>>> 
>>> 
>>> ------------------------------------------------------------------------------
>>> Don't let slow site performance ruin your business. Deploy New Relic APM
>>> Deploy New Relic app performance management and know exactly
>>> what is happening inside your Ruby, Python, PHP, Java, and .NET app
>>> Try New Relic at no cost today and get our sweet Data Nerd shirt too!
>>> http://p.sf.net/sfu/newrelic-dev2dev
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Matplotlib-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>> 
>> 
>> 
>> ------------------------------------------------------------------------------
>> Don't let slow site performance ruin your business. Deploy New Relic APM
>> Deploy New Relic app performance management and know exactly
>> what is happening inside your Ruby, Python, PHP, Java, and .NET app
>> Try New Relic at no cost today and get our sweet Data Nerd shirt too!
>> http://p.sf.net/sfu/newrelic-dev2dev
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> 
> The extent keyword is something I put in as second nature. You'll need
> it if your x-range or y-range is something other than the the number
> of pixels in each dimension. In this case, it can safely be removed,
> yes. Thanks for pointing that out.
> 
> If you want to share axes, that is still possible:
> 
> import matplotlib.pyplot as plt
> from numpy import arange, array
> 
> arr = arange(10000).reshape(100,100)
> l = [arr,arr,arr,arr]
> narr = array(l)
> 
> axes = []
> fig = plt.figure()
> for i in range(4):
>     if i == 0:
>         axes.append(fig.add_subplot(2, 2, i))
>     if i > 0:
>         axes.append(fig.add_subplot(2, 2, i, sharex=axes[0], sharey=axes[0]))
> 
> for ax, im in zip(axes, narr):
>     ax.imshow(im, extent=[0,100,0,100])
> 
> plt.show()

This code fails to share the axes and the last extent setting as well, 
so like in my example the images are shown, at least on my system, with 
an extent of [-10,110,0,100].




------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to