Plotting a matrix in some region

To be honest, from a user perspective such effects are very

    > problematic and I would usually considered as a bug.

    > Together with Martin Richter I had a closer look at this:

Hey Arnd,

All of your suggestions look reasonable to me on cursory inspection,
but the person best equipped to decide these things is Mark Bakker,
who wrote the axes equal handling. I've CC'd him on this message.

    > Regarding the questions of axis('equal') and axis('scaled'),
    > I submitted a patch for the axis('equal') command about a
    > month ago that will turn it into the same behavior as
    > matlab. After the axis('equal') command is given, the scale
    > on both axes will be equal (such that a circle looks like a
    > circle). It has a little demo file with it as
    > well. Hopefully that will be implemented in CVS soon (let me
    > know if I can help here, John),

Mark, I committed your patch and these guys are using CVS, so the
issues Arnd and Martin describe apply to the patched matplotlib.

If the three of you could hash this out and come up with an updated
patch you are all happy with, I'm happy to apply it. As always,
please provide some language with your patch for API_CHANGES, if there
are any.

I have a couple of minor comments:

    > While at this: I also don't like `autoscale_on` very much.
    > I think that `autoscale` (being True or False) would be enough.

I recall Fernando objecting to this too, so it must be particularly
irritating. My inclination for cosmetic things like this is to not
break backwards compatibility for a slightly more pleasing name.

    > And one more (just to complicate matters even more): At the
    > moment there is only autoscaling for x and y at the same
    > time. Gnuplot, for example, allows to specify the xrange or
    > yrange separately and the other range is autoscaled. I am
    > mentionining this, because it might be a useful feature.
    > (However, it might make the coding of the autoscaling even
    > more involved...).

I think this would be useful too. We could implement autoscalex and
autoscaley properties which would handle this. I don't think the code
would be particularly cumbersome. Then the question is: what should
be done with autoscale_on: deprecate it, or have it set autoscalex and
autoscaley together?

Thanks,
JDH

···

On Fri, 2 Sep 2005, John Hunter wrote:

[...]

Hey Arnd,

All of your suggestions look reasonable to me on cursory inspection,
but the person best equipped to decide these things is Mark Bakker,
who wrote the axes equal handling. I've CC'd him on this message.

OK, I think the best is that Mark has a look at the CVS version
and our comments and then we will move on ...

[...]

I have a couple of minor comments:

    > While at this: I also don't like `autoscale_on` very much.
    > I think that `autoscale` (being True or False) would be enough.

I recall Fernando objecting to this too, so it must be particularly
irritating. My inclination for cosmetic things like this is to not
break backwards compatibility for a slightly more pleasing name.

I can understand this, but on the other hand, we are at *0*.84,
so users should expect things to break when running < 1.0 software.
Also the breakage does not seem too bad to me.
Not changing it now means that it will also be in matplotlib 8.0
(and even in the upcoming MDE (Matplotlib Desktop Environment) ;-).

    > And one more (just to complicate matters even more): At the
    > moment there is only autoscaling for x and y at the same
    > time. Gnuplot, for example, allows to specify the xrange or
    > yrange separately and the other range is autoscaled. I am
    > mentionining this, because it might be a useful feature.
    > (However, it might make the coding of the autoscaling even
    > more involved...).

I think this would be useful too. We could implement autoscalex and
autoscaley properties which would handle this. I don't think the code
would be particularly cumbersome. Then the question is: what should
be done with autoscale_on: deprecate it, or have it set autoscalex and
autoscaley together?

I think `autoscale` should imply `autoscalex` and `autoscaley`
(Note that I did not write `autoscale_on`,`autoscale_on_x`,
`autoscale_on_y` ;-).

Best,

Arnd

···

On Tue, 6 Sep 2005, John Hunter wrote: