Getting axis limits through ax.axis() turns off autoscaling. Confusing behavior?

Hi,

When getting an axis’s extents through “axis”, the autoscaling state of the axis is turned off, regardless of the state it was in before calling “ax.axis()”

E.g.

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
print ax.get_autoscale_on()
limits = ax.axis()
print ax.get_autoscale_on()

It makes sense that it would be turned off if the axis’s limits are manually set, but calling ax.get_xlim() or ax.get_ylim() doesn’t change the autoscaling state, so why should getting the extents by calling ax.axis()?

This seems like confusing and/or inconsistent behavior to me. Would this be considered a bug? If not, is it worth clarifying in the docstring to axis?

Thanks,
-Joe

Hi,

When getting an axis's extents through "axis", the autoscaling state of
the axis is turned off, regardless of the state it was in before calling
"ax.axis()"

E.g.
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
print ax.get_autoscale_on()
limits = ax.axis()
print ax.get_autoscale_on()

It makes sense that it would be turned off if the axis's limits are
manually set, but calling ax.get_xlim() or ax.get_ylim() doesn't change
the autoscaling state, so why should getting the extents by calling
ax.axis()?

It's a bug.

Eric

···

On 05/14/2011 12:22 PM, Joe Kington wrote:

This seems like confusing and/or inconsistent behavior to me. Would this
be considered a bug? If not, is it worth clarifying in the docstring to
axis?

Thanks,
-Joe

Hi,

When getting an axis's extents through "axis", the autoscaling state of
the axis is turned off, regardless of the state it was in before calling
"ax.axis()"

E.g.
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
print ax.get_autoscale_on()
limits = ax.axis()
print ax.get_autoscale_on()

It makes sense that it would be turned off if the axis's limits are
manually set, but calling ax.get_xlim() or ax.get_ylim() doesn't change
the autoscaling state, so why should getting the extents by calling
ax.axis()?

It is now fixed in v1.0.x and master on github.

Eric

···

On 05/14/2011 12:22 PM, Joe Kington wrote:

This seems like confusing and/or inconsistent behavior to me. Would this
be considered a bug? If not, is it worth clarifying in the docstring to
axis?

Thanks,
-Joe

------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay

_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Thanks!
-Joe

···

On Sun, May 15, 2011 at 12:50 AM, Eric Firing <efiring@…202…> wrote:

On 05/14/2011 12:22 PM, Joe Kington wrote:

Hi,

When getting an axis’s extents through “axis”, the autoscaling state of

the axis is turned off, regardless of the state it was in before calling

“ax.axis()”

E.g.

import matplotlib.pyplot as plt

fig = plt.figure()

ax = fig.add_subplot(111)

print ax.get_autoscale_on()

limits = ax.axis()

print ax.get_autoscale_on()

It makes sense that it would be turned off if the axis’s limits are

manually set, but calling ax.get_xlim() or ax.get_ylim() doesn’t change

the autoscaling state, so why should getting the extents by calling

ax.axis()?

It is now fixed in v1.0.x and master on github.

Eric

This seems like confusing and/or inconsistent behavior to me. Would this

be considered a bug? If not, is it worth clarifying in the docstring to

axis?

Thanks,

-Joe


Achieve unprecedented app performance and reliability

What every C/C++ and Fortran developer should know.

Learn how Intel has extended the reach of its next-generation tools

to help boost performance applications - inlcuding clusters.

http://p.sf.net/sfu/intel-dev2devmay


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Achieve unprecedented app performance and reliability

What every C/C++ and Fortran developer should know.

Learn how Intel has extended the reach of its next-generation tools

to help boost performance applications - inlcuding clusters.

http://p.sf.net/sfu/intel-dev2devmay


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users