Sander, You show simple examples that work, but then if one deviates a little from them they don't work. here is a simple graphic done in Presentations using graphics primitives.
Draw2D[
{{GrayLevel[0.8], Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]},
{Red, Draw[Sin[x], {x, 0, 2 \[Pi]}]},
Text["Sin", {\[Pi]/2, 0.8}],
{Darker@Green, Draw[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]}]},
Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]},
Frame -> True]
It's pretty simple. You just draw one thing after another. The curves are converted to graphics primitives. We can set up the applicative graphic directives before drawing the curves. To me this is intuitive. I don't know how others feel.
A newbie might not know he has to put directives in an option or that he has to wrap primitives in Graphics. But let's say he figures that out and learns about Epilog. He might try this:
Show[
{Graphics[{GrayLevel[0.8],
Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]}],
Plot[Sin[x], {x, 0, 2 \[Pi]},
PlotStyle -> Red,
Epilog -> Text["Sin", {\[Pi]/2, 0.8}]],
Plot[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]},
PlotStyle -> Darker@Green,
Epilog -> Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]]},
Frame -> True]
It doesn't work. The Text items don't appear. Why not? I have no idea why they both are missing.
The newbie has to figure out how to do it as follows - with a lot of graphics level jumping.
Show[
{Graphics[{GrayLevel[0.8],
Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]}],
Plot[Sin[x], {x, 0, 2 \[Pi]},
PlotStyle -> Red],
Graphics[Text["Sin", {\[Pi]/2, 0.8}]],
Plot[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]},
PlotStyle -> Darker@Green],
Graphics[Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]]},
Frame -> True]
Or this, which changes the AspectRatio used:
Show[
{Plot[Sin[x], {x, 0, 2 \[Pi]},
PlotStyle -> Red],
Plot[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]},
PlotStyle -> Darker@Green]},
Prolog -> {GrayLevel[0.8],
Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]},
Epilog -> {Text["Sin", {\[Pi]/2, 0.8}],
Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]},
AspectRatio -> 1/\[Pi],
Axes -> None,
Frame -> True]
Here is a case with a Lighting option in Show. Again, you showed a simple case that worked. But this does not work. The Lighting specification is not used.
Show[
{Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
PlotStyle -> Lighter@Brown,
Mesh -> None],
ParametricPlot3D[{x, Sin[x + z], z}, {x, -3, 3}, {z, -2, 2},
PlotStyle -> Green,
Mesh -> None]},
Lighting -> "Neutral",
ImageSize -> 300
]
The Lighting option has to be inserted into both of the surface plots. Why? Why can't we have a one overall Lighting specification for the entire graphic?
Show[
{Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
PlotStyle -> Lighter@Brown,
Lighting -> "Neutral",
Mesh -> None],
ParametricPlot3D[{x, Sin[x + z], z}, {x, -3, 3}, {z, -2, 2},
PlotStyle -> Green,
Lighting -> "Neutral",
Mesh -> None]},
ImageSize -> 300
]
Maybe you consider these things as trivial bits of knowledge that the user should have known. But as David Keith wrote; "I have seen a lot of engineers trying to get a simple graph for an afternoon meeting go to Excel in frustration."