On 05/25/2012 12:46 PM, Dan Drake wrote:
> 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.

Dan,

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.

Eric

>
> Thanks for any help or comments!
>
> Dan
>
> --
> ---  Dan Drake
> -----  http://mathsci.kaist.ac.kr/~drakes
> -------

------------------------------------------------------------------------------
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
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to