# Axes Origin & Labels in 3D Plot

I'm looking for a way to have the axes at the origin in a 3D plot and to label the (x,y,z) axes in the usual way---with x near the end of the drawn portion of the x axis, y near the end of the drawn portion of the y axis, etc. I've tried

Plot3D[x^2 + y^2 + 3, {x, -3, 3}, {y, -3, 3},
AxesOrigin -> {0, 0, 0}, PlotRange -> {-1, 20}, AxesLabel -> {x, y, z}]


which works well for the axes position but horribly for the labeling. (The labels appear all together near the origin; it is not at all clear which axis is associated with which label.) Any suggestions?

• In Mathematica 11, the labels position themselves automatically at the ends of the axis when AxesOrigin is specified. (Although, the labels are not always at the positive ends of the axes.) Commented Feb 6, 2018 at 14:23

With Scaled position:

Show[{Plot3D[x^2 + y^2 + 3, {x, -3, 3}, {y, -3, 3},
AxesOrigin -> {0, 0, 0}, PlotRange -> {-1, 20}],
Graphics3D[{Text["x", Scaled[{-.05, .5, 0}], {0, -1}],
Text["y", Scaled[{.5, -.05, 0}], {0, -1}],
Text["z", Scaled[{.5, .5, 1.1}]]}]}, Boxed -> False]


Show[{Plot3D[x^2 + y^2 + 3, {x, -3, 3}, {y, -3, 3},

Mess around with the Text[ ] functions to change sizes and positions. I'm sure there must be a better way, though.