Well, maybe you can make something with this?
a1 := SliceContourPlot3D[z,
x == 0, {x, -5, 5}, {y, -5, 5}, {z, -5, 5}, Background -> Black,
ContourShading -> White, Contours -> 9,
TicksStyle -> {Red, Green, Blue}]
a2 := SliceContourPlot3D[z,
y == 0, {x, -5, 5}, {y, -5, 5}, {z, -5, 5}, ContourShading -> White,
Contours -> 9]
b1 := SliceContourPlot3D[x,
y == 0, {x, -5, 5}, {y, -5, 5}, {z, -5, 5}, ContourShading -> White,
Contours -> 9]
b2 := SliceContourPlot3D[x,
z == 0, {x, -5, 5}, {y, -5, 5}, {z, -5, 5}, ContourShading -> White,
Contours -> 9]
c1 := SliceContourPlot3D[y,
x == 0, {x, -5, 5}, {y, -5, 5}, {z, -5, 5}, ContourShading -> White,
Contours -> 9]
c2 := SliceContourPlot3D[y,
z == 0, {x, -5, 5}, {y, -5, 5}, {z, -5, 5}, ContourShading -> White,
Contours -> 9]
p := Graphics3D[{PointSize -> 0.05, Point[{3, 2, 2}], Red,
Arrowheads[0.1], Thick, Line[{{0, 2, 2}, {3, 2, 2}}],
Arrow[{{0, 0, 5}, {3, 0, 5}}], Green, Line[{{3, 0, 2}, {3, 2, 2}}],
Arrow[{{0, 0, 5}, {0, 3, 5}}], Blue, Line[{{3, 2, 0}, {3, 2, 2}}],
Arrow[{{5, 0, 0}, {5, 0, 3}}]}]
And...
Show[a1, a2, b1, b2, c1, c2, p]

By using variables instead of constants you can quickly change the position of the point.
FaceGridsdoesn't exactly reproduce your plot, but it could be just what you need. – Jason B. Jun 25 '16 at 03:38