# imlim in ax.imshow

>>>>>
>>>> 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:

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

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

Â·Â·Â·

On 2012/10/02 9:21 AM, Michael Aye wrote:

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

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()

Â·Â·Â·

On Tue, Oct 2, 2012 at 9:09 PM, Eric Firing <efiring@...202...> 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

--
Damon McDougall
http://www.damon-is-a-geek.com
B2.39
Mathematics Institute
University of Warwick
Coventry
West Midlands
CV4 7AL
United Kingdom