[matplotlib-devel] plot() with a nearly-constant sequence doesn't always work

2012-05-25 Thread Dan Drake
Hello matplotlib developers,

In Sage, we've run into a problem with plotting a sequence whose
y-values change by very small amounts. Here's an example that doesn't
use anything from Sage:

import pylab
pylab.plot([0, 1], [0, 1e-14])
pylab.savefig("works.png")
pylab.close()
pylab.plot([0, 1], [1, 1+1e-14])
pylab.savefig("fails.png")
pylab.close()

We're using matplotlib 1.1. Here's a trac ticket where we are working on
this: http://trac.sagemath.org/sage_trac/ticket/11973. One of our
developers suspects matplotlib.ticker.MaxNLocator.bin_boundaries but we
don't really know.

Thanks for any help or comments!

Dan

--
---  Dan Drake
-  http://mathsci.kaist.ac.kr/~drake
---


signature.asc
Description: Digital signature
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
Matplotlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel


Re: [matplotlib-devel] plot() with a nearly-constant sequence doesn't always work

2012-05-26 Thread Dan Drake
On Sat, 26 May 2012 at 03:30PM -1000, Eric Firing wrote:
> It is easy enough to remove the immediate roadblock in scale_range,
> but that just opens up a can of floating point worms.  The axis spines
> start getting misplaced, for example, as the range being plotted gets
> too small relative to the offset.  Straightening all this out, or even
> substantially improving it, is potentially tricky. To the extent that
> it can be done, it will have to be in master, which already includes
> one cleanup of a floating point kluge.
> 
> Note that part of the problem here is that in your example we are
> running out of precision.  The best way to handle it is to subtract an
> offset first, and just plot the deviation from that offset.  I think
> this is best done at the application level.  We can probably make
> mpl's handling of the problem degrade more gracefully, however, than
> it does at present.

Thanks for your help. I'll look at your links and see what we can do.

Dan

--
---  Dan Drake
-  http://mathsci.kaist.ac.kr/~drake
---


signature.asc
Description: Digital signature
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
Matplotlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel