Yet another way:
In this plot, data points are represented in a 3D space, whereas errors are represented on the (x,y), (x,z), and (y,z) planes as textures using ErrorListPlot
.
Here the code:
Needs["ErrorBarPlots`"]
data = {{.5, .5, .5, .2, .2, .2}, {-.4, -.1, .2, .2, .2, .3}, {.2, \
.1, .3, .1, .2, .1}, {-.2, .3, .4, .1, .2, .3}, {.3, -.3, -.3, .2, \
.1, .1}};
xyzSpace = Graphics3D[{
{Lighter[Green], Sphere[{#1, #2, #3}, .03]},
{Dashed, Black, Thickness[.003],
Line[{{#1, #2, -1}, {#1, #2, #3}}]},
{Dashed, Black, Thickness[.003],
Line[{{#1, 1, #3}, {#1, #2, #3}}]},
{Dashed, Black, Thickness[.003],
Line[{{-1, #2, #3}, {#1, #2, #3}}]}
} & @@@ data, PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}},
BoxRatios -> 1, AxesLabel -> {x, y, z}];
xyPlane =
ErrorListPlot[
{{#1, #2}, ErrorBar[#4, #5]} & @@@ data,
PlotRange -> {{-1, 1}, {-1, 1}}, AspectRatio -> 1, Axes -> None,
PlotStyle -> {Darker[Green], Thickness[.01], PointSize[.03]},
ImageSize -> 400];
xzPlane =
ErrorListPlot[
{{#1, #3}, ErrorBar[#4, #6]} & @@@ data,
PlotRange -> {{-1, 1}, {-1, 1}}, AspectRatio -> 1, Axes -> None,
PlotStyle -> {Darker[Green], Thickness[.01], PointSize[.03]},
ImageSize -> 800];
yzPlane =
ErrorListPlot[
{{#2, #3}, ErrorBar[#5, #6]} & @@@ data,
PlotRange -> {{-1, 1}, {-1, 1}}, AspectRatio -> 1, Axes -> None,
PlotStyle -> {Darker[Green], Thickness[.01], PointSize[.03]},
ImageSize -> 800];
xyTex = Graphics3D[{EdgeForm[{Thin, Black}], {Texture[xyPlane],
Polygon[{{-1, -1, -1}, {1, -1, -1}, {1, 1, -1}, {-1, 1, -1}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}},
Boxed -> False];
xzTex = Graphics3D[{EdgeForm[{Thin, Black}], {Texture[xzPlane],
Polygon[{{-1, 1, -1}, {1, 1, -1}, {1, 1, 1}, {-1, 1, 1}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}},
Boxed -> False];
yzTex = Graphics3D[{EdgeForm[{Thin, Black}], {Texture[yzPlane],
Polygon[{{-1, -1, -1}, {-1, 1, -1}, {-1, 1, 1}, {-1, -1, 1}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}},
Boxed -> False];
Show[xyzSpace, xyTex, xzTex, yzTex, Axes -> True,
Lighting -> {{"Directional", White, {2, -3, 4}}}, ImageSize -> 800]