I see a problem when I'm using autoscale. I have a spectra with huge
difference in y. I used xlim to look only a part of my spectra and the
ylim is not autoscale to this peculiar part of the spectra but on all
I'm using the last CVS version.
From: John Hunter <jdhunter@ac...> - 2005-03-01 03:08:54
>>>>> "Humufr" == Humufr <humufr@...> writes:
Humufr> Hi, I see a problem when I'm using autoscale. I
Humufr> have a spectra with huge difference in y. I used xlim to
Humufr> look only a part of my spectra and the ylim is not
Humufr> autoscale to this peculiar part of the spectra but on all
Humufr> the spectra.
Humufr> I'm using the last CVS version.
This was done intentionally for performance reasons. Every plot
command calls autoscale, and each time this happens the autoscaler
would have to iterate over all the data in the axes (text, polygons,
lines, etc) and determine the vertices in the view limits. Certainly
doable, but I try to make mpl reasonably efficient for large data sets
and this could get expensive. Instead, when a piece of data is added
to the axes initially, I update the datalim with it and use that in
I'm aware of the problem you describe -- autoscaling can be suboptimal
when you initially set an axis view to only a part of the axes. This
is a problem I can live with -- autoscaling doesn't have to be
perfect, it just needs to get it right most of the time. And when it
doesn't do the most sensible thing, eg in this case, it at least
includes your data in the plot, and it is fairly easy for you to use
the navigation controls -- eg constrained y zoom by pressing y and
dragging the right mouse -- or otherwise set the limits manually.
So this is an area where I'd rather trade convenience for performance.
It wouldn't be to much work though, to add an option to the the
autoscaler to fix one of the axes limits (eg the xlim) and autoscale
the other axis only considering data within that range....
Get latest updates about Open Source Projects, Conferences and News.