This is indeed odd.
 

> X=plot([])
>
>
You shouldn't have to do this - let us know if it doesn't plot otherwise. 
 And the canonical way to do it if you really wanted to is X = Graphics() . 
 

> X+=E.base_extend(S[0]).plot(color="red",legend_label=str(exp(1.)))
> X
>
> the legend appears twice (tried with 6.4.1, 6.6, 6.7). Is it a bug ?
>
>
I would think so.

sage: F = E.base_extend(S[0])
sage: F.plot(legend_label='b')
Launched png viewer for Graphics object consisting of 2 graphics primitives

So note that it really is two objects.

sage: F.plot()
Launched png viewer for Graphics object consisting of 2 graphics primitives

And it is even without the label!  That just makes it obvious.  In fact, 
this is even documented (!)

            sage: E = EllipticCurve('37a')
            sage: plot(E)
            Graphics object consisting of 2 graphics primitives

So the question is what to do about it with things like legends.  The code 
for plotting is very ugly, presumably to take care of the 'bounded' and 
'unbounded' components, but I did find where it comes in.

        for j in range(len(I)):
            <snip>
            if shape == 'o':
                g += plot.line(v + list(reversed(w)) + [v[0]], **args)
            elif shape == '<':
                g += plot.line(list(reversed(v)) + w, **args)
            elif shape == '>':
                g += plot.line(v + list(reversed(w)), **args)
            else:
                g += plot.line(v, **args)
                g += plot.line(w, **args)
        return g

So *each* component gets all optional arguments.  Which ordinarily makes 
sense (things like color or F.plot(marker='^') or F.plot(linestyle='--')) 
but in this case does not.

I've opened http://trac.sagemath.org/ticket/18711 but I would appreciate if 
any number theorists could comment there what they expect and so forth, 
because one wouldn't want some nasty side effects from anything done.  One 
could monkey in a solution for legend stuff but in truth there are a lot of 
legend options and so it would be better to have a cleaner solution, such 
as one that did the plots first and *then* passed in keyword arguments, if 
that were possible.

- kcrisman

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to