Sure enough. I did not pay a lot of attention to the zoom part of pan/zoom mode with fixed aspect ratio because it doesn't make much sense to me--it is trying to change the aspect ratio, while the aspect-ratio code is desperately trying to keep the aspect ratio fixed. The solution is probably to redefine what the right-button-event does in the fixed aspect ratio case. It should either be disabled, or arranged so that motion to the right and/or up zooms in and to the left and/or down zooms out. What do you think it should do?
Left-button pan is definitely broken for horizontal motion.
I think what we have is not a single simple bug, but a whole set of bugs. It seems to be difficult to fix one thing related to aspect-ratio handling without breaking something else for interactive drawing. That probably means the overall design is bad. When I can, I will take another look and see if I can patch it up, but it won't be right away. If you can find a solution, that would be great.
Andrew Straw wrote:
I'm having trouble with axis('equal') myself -- I'm happy to take a look
in the source, but maybe it's a simple and easy bug. The issue I'm
having is readily apparent with examples/axis_equal_demo.py -- using the
pan/zoom mode and holding the right-mouse button down to zoom, I notice
1) moving left-and-right seems to affect the position, not the zoom level
2) moving up seems to zoom in (as expected)
3) moving down zooms out as expected, but past a certain point, only the
vertical axis gets re-scaled and breaking the equal-aspect.
Eric Firing wrote:
I thought all the aspect handling was finally working correctly. If
you generate a simple example, I will take a look. The simpler the
better, of course. I presume you are working with a recent svn version.
Michael P. Mossey wrote:
I'm using this aspect mode:
axes.set_aspect( 'equal', adjustable='datalim' )
With several xy line plots on the axes, autoscaling doesn't seem to
occur properly. It cuts off part of the data. Is this a known issue?
I don't have a simple script to replicate it---I'll have to pull that
out of a larger program---but just wanted to check if it is known. I
don't see anything in the bug tracker.