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