# Tick Marks and Intercepts

Help! I'm trying to use Sage to plot x-intercepts, and there seems to be a problem when I try to zoom in too far. E.g. if I execute

plot(1-4*x^2,.4999,.5001,tick_formatter=.0001.n(digits=6))

then I get exactly what I expect, but if I execute

plot(1-4*x^2,.49999,.50001,tick_formatter=.00001.n(digits=7))

then I get this error message:

Traceback (click to the left of this block for traceback) ... Unknown symbol: \verb (at char 0), (line:1, col:1)

Curiously, this seems to be directly related to the fact that my function is crossing the x axis on the domain in question. E.g. if I try

plot(1-4*x^2,1.49999,1.50001,tick_formatter=.00001.n(digits=7))

then everything comes out fine.

Any thoughts on what's going on and/or how to get around it?

Thanks.

edit retag close merge delete

Sort by » oldest newest most voted

Good catch. My guess is that this is a matplotlib thing.

That said, the graphics doc suggests this usage of tick_formatter is not really supported - it was intended for symbolic numbers, not floating point ones, though this is a very nice workaround for formatting. The following works (and doesn't look as nice):

plot(1-4*x^2,.49999,.50001,tick_formatter=[.00001.n(digits=7),None])


It turns out that the (Sage) issue is that floating point numbers in RR are also in SR the symbolic ring, which triggers this problem. But in principle this should still work - the problem is that matplotlib is being passed things that turn into -4e^-5. Note that this doesn't work either

plot(1-4*x^2,.50001,.50002,tick_formatter=.00001.n(digits=7))
ValueError:
\text{\texttt{{-}8e{-}05}}
^
Unknown symbol: \ttext (at char 0), (line:1, col:1)


so the problem is the addition of the \text when we already have the \texttt there.

more

Also, sorry this isn't a full answer - it's just as much me debugging out loud. I've opened http://trac.sagemath.org/ticket/15776 for this.

( 2014-02-01 14:35:34 -0600 )edit

Certainly no need to apologize; this answer is very helpful. Thanks much, kcrisman.

( 2014-02-02 03:11:17 -0600 )edit