# How to label a row of plots with the labels close to the plots?

I am running this code:

Plot3D[#, {x, -5, 5}, {y, -5, 5}, PlotRange -> {-5, 10}] & /@ {x, y,
Abs[x], Abs[y], Abs[x + y], Abs[x] + Abs[y]} //
GraphicsGrid[{#, {"x", "y",
"\[LeftBracketingBar]x\[RightBracketingBar]",
"\[LeftBracketingBar]y\[RightBracketingBar]",
"\[LeftBracketingBar]x+y\[RightBracketingBar]",
"\[LeftBracketingBar]x\[RightBracketingBar]+\[LeftBracketingBar]\
y\[RightBracketingBar]"}}] &


to produce this result:

which is great. But I would like the labels to be rendered closer to the plots. Is there some way to do that with GraphicsGrid?

(I don't really want to be using a GraphicsGrid – I actually want to be using a GraphicsRow, with labels below the plots. But I can't figure out how to do that. This is the best hack I have come up with.)

• Replace GraphicsGrid by Grid? – OkkesDulgerci Mar 29 '18 at 3:37
• Try Labeled[Plot3D[#, {x, -5, 5}, {y, -5, 5}, PlotRange -> {-5, 10}], TraditionalForm[#]] & /@ {x, y, Abs[x], Abs[y], Abs[x + y], Abs[x] + Abs[y]}. – J. M.'s torpor Mar 29 '18 at 3:37
• I would accept either of these as a solution. What's the protocol? Should I convert both into a solution & accept? Or should I just delete the question as trivial? – billc Mar 29 '18 at 3:41
• use GraphicsRow[ Labeled @@@ Transpose[{#, TraditionalForm /@ {x, y, Abs[x], Abs[y], Abs[x + y], Abs[x] + Abs[y]}}]] & instead of GraphicsGrid[...]&? – kglr Mar 29 '18 at 3:43

You can use PlotLabel if you don't mind having the labels above the plots:

GraphicsRow[
Map[
Plot3D[#,{x,-5,5},{y,-5,5},PlotRange->{-5,10},PlotLabel->#]&,
{x,y,Abs[x],Abs[y],Abs[x+y],Abs[x]+Abs[y]}
],
ImageSize->800
]


For labels below the plot you can use Labeled (as in the comments) or PlotLegends:

GraphicsRow[
Map[
Plot3D[#,{x,-5,5},{y,-5,5},PlotRange->{-5,10},PlotLegends->Placed[#,Below]]&,
{x,y,Abs[x],Abs[y],Abs[x+y],Abs[x]+Abs[y]}
],
ImageSize->800
]


• thanks Carl. I've never seen the Placed directive before, it looks good to know about. – billc Mar 29 '18 at 4:23