From the documentation of SphericalPlot3D
you can find:
SphericalPlot3D[{1, 2, 3}, {θ, 0, Pi}, {ϕ, 0, 3 Pi/2}]
Thus, you can modify it a little:
r = {1, 2, 3};
col = [email protected];
opts = {Mesh -> None, Boxed -> False, Axes -> False};
spheres = SphericalPlot3D[Evaluate@r, {\[Theta], 0, Pi}, {\[Phi], 0, 3 Pi/2},
Evaluate@opts, PlotStyle -> (Directive[Opacity@(1/#), col] & /@ r)];
(*axes and labels*)
al = Graphics3D[{Style[Text[#, RotateLeft@#2], Bold, 15] & @@@
Thread[{{"X", "Y", "Z"}, RotateRight[{Max@r + Max@r/10, 0, 0}, #] & /@ {0, 1, 2}}],
Inset[Style[#, Bold, 20], {(Sqrt@2)/2 #, 0, (Sqrt@2)/2 #}] & /@ r},
PlotRange -> Max@r, Boxed -> False, Axes -> True, AxesOrigin -> {0, 0, 0}];
filling[{rmin_, rmax_}] := ParametricPlot3D[{r*{0, -1 Sin[t], Cos[t]},
r*{Sin[t], 0, Cos[t]}}, {r, rmin, rmax}, {t, 0, Pi},
Evaluate@opts, PlotStyle -> (Directive[EdgeForm[], [email protected], col])];
Show[{al, spheres, filling[{0, Min@r}], filling[r[[2 ;; 3]]]}]
Edit:
It's now easier to chose where to place the axes labels:
r = {1, 2, 3};
col = [email protected];
opts = {Mesh -> None, Boxed -> False, Axes -> False};
spheres = SphericalPlot3D[Evaluate@r, {\[Theta], 0, Pi}, {\[Phi], 0, 3 Pi/2},
Evaluate@opts, PlotStyle -> (Directive[Opacity@(1/#), col] & /@ r)];
(*axes and labels*)
al = Graphics3D[{Style[Text[#, RotateLeft@#2], Bold, 15] & @@@
{{Subscript[S, x], {Max@r + .5, 0, 0}},
{Subscript[S, x], {0, Max@r + .5, 0}},
{Subscript[S, x], {0, 0, -Max@r - .5}}},
Inset[Style[#, Bold, 20], {(Sqrt@2)/2 #, 0, (Sqrt@2)/2 #}] & /@ r},
PlotRange -> Max@r, Boxed -> False, Axes -> True, AxesOrigin -> {0, 0, 0}];
filling[{rmin_, rmax_}] := ParametricPlot3D[{r*{0, -1 Sin[t], Cos[t]},
r*{Sin[t], 0, Cos[t]}}, {r, rmin, rmax}, {t, 0, Pi},
Evaluate@opts, PlotStyle -> (Directive[EdgeForm[], [email protected], col])];
Show[{al, spheres, filling[{0, Min@r}], filling[r[[2 ;; 3]]]}]
, Axes -> True, AxesOrigin -> {0, 0, 0}
for the axes. You can take a look atInset
for the labels. $\endgroup$SphericalPlot3D[{1, 2, 3}, {\[Theta], 0, Pi}, {\[Phi], 0, 3 Pi/2}, Mesh -> None, Boxed -> False, Axes -> True, AxesOrigin -> {0, 0, 0}, PlotStyle -> Directive[Opacity[.6], Specularity[White, 20]]]
? $\endgroup$