# Plotting Overlapping Curves

Stupid newbie question!

I want to be able to plot two or more functions on a single graph. For example, I wish to plot $x^2$ and $2^x$, say in red and blue, such that a person can readily see, with their eyes, where the two curves intersect.

Unfortunately, I can't figure out how to make this happen. It seems like it would be a common teaching device but how to make it work?

Any assistance welcomed!

edit retag close merge delete

Sort by » oldest newest most voted

Okay, answering my own question, in case someone else got confused like I did:

p1 = plot(x^2,(x,0,5),rgbcolor=hue(0.4))
p2 = plot(2^x,(x,0,5),rgbcolor=hue(0.6))
show(p1+p2, axes=true)


Here the function of the '+' operator seems to mean "and" rather than "plus".

more

You shouldn't even need the axes=True part, I think. If you look at

sage: plot?


you'll see that + is the standard way to add plots.

It sounds like you might want to plot things in a certain order of objects on top of each other; here, the zorder option should often work (though there might be some graphics primitives where it doesn't). Like so:

sage: P = plot(sin,0,pi,zorder=50)
sage: Q = plot(cos,0,pi,color='red',zorder=51)
sage: P+Q


Here, red is on top (like in a plot with no zorder)

sage: Q = plot(cos,0,pi,color='red',zorder=40)
sage: P+Q


Here, blue is on top.

Note that the behavior without zorder set is sometimes a little enigmatic - I don't know whether P+Q and Q+P always plot the second one on top if you don't use zorder above, since for certain objects that doesn't seem to happen; for these plot types, apparently that does happen, though.

more