Als Minimalbeispiel verwende ich einen gegenüber [3D-Plot. Achsen-Ticks manuell beschriften und Sonderzeichen][1] etwas reduzierten Code. Und ich gehe davon aus, dass Du zweidimensional verschieben möchtest, also direkt angeben möchtest, um wie viele Millimeter das Label horizontal oder vertikal verschoben werden soll.
\documentclass[tikz,margin=10pt]{standalone}
\begin{document}
\begin{tikzpicture}[>=latex,
x={(0.7cm,0.7cm)},y={(1cm,0cm)}, z={(0cm,1cm)},
punkt/.style={circle,draw,fill=#1,inner sep=0pt,minimum size=9pt},
punkt/.default=white,
nummer/.style={},
%% Zum Einblenden der Koordinatennummern
%nummer/.style={label={[red,font=\tiny,label distance=2mm]below:#1}}
]
% zweidimensionales Gitter
\draw[very thin, lightgray,step=1mm](0,0)grid(3cm,4cm);
% Achsen
\draw[->] (0,0,0) -- (4,0,0) node[above]{$S$};
\draw[->] (0,0,0) -- (0,4,0) node[below,align=left]{Zwischen-\\schritte};
\draw[->] (0,0,0) -- (0,0,4) node[left]{$\xi$};
% Achseneinteilung
\newcommand\xcoords{{1,2,3}}\newcommand\imax{2}
\newcommand\ycoords{{0,1,4.5}}\newcommand\jmax{2}
\newcommand\zcoords{{0,2.5,5}}\newcommand\kmax{2}
% Gitterpunkte benennen
\foreach[evaluate={\x=\xcoords[\i]}] \i in {0,...,\imax}
\foreach[evaluate={\y=\ycoords[\j]}] \j in {0,...,\jmax}
\foreach[evaluate={\z=\zcoords[\k]}] \k in {0,...,\kmax}
\coordinate[nummer=\i\j\k](c\i\j\k)at(\x,\y,\z);
%%% -------------------------------------------------------------------------------
\begin{scope}[node font=\scriptsize]
% Punkte einzeichnen
\node[punkt=lightgray,
label=above:{$J(\xi_{j},1,N-4)$}
](p011)at(c011){?};
\end{scope}
\end{tikzpicture}
\end{document}
![alt text][2]
Um das Verschieben zeigen zu können, habe ich ein zweidimensionales Gitter eingefügt:
% zweidimensionales Gitter
\draw[very thin, lightgray,step=1mm](0,0)grid(3cm,4cm);
Durch die Angabe in `cm` wird das Gitter tatsächlich mit einer Breite von `3cm` und einer Höhe von `4cm` gezeichnet. Würde ich die Einheiten weglassen, dann würde das Gitter bis zu dem Punkt gezeichnet, der der Summe aus 3x Deinem `x` Richtungsvektor und 4x Deinem `y` Richtungsvektor entspricht. Mit der Angabe von `step=1mm` verhält es sich ähnlich.
Für das Verschieben des Labels kann man die Optionen `xshift` oder/und `yshift` nutzen. Diese Verschiebungen müssen mit einer Einheit angegeben werden. Fehlt diese wird `pt` verwendet. Entsprechend verschiebt `xshift` tatsächlich horizontal und `yshift` vertikal.
\node[punkt=lightgray,
label={[gray]above:{$J(\xi_{j},1,N-4)$}},
label={[yshift=2mm,orange]above:{$J(\xi_{j},1,N-4)$}},% 2mm nach oben
label={[xshift=-2mm,purple]above:{$J(\xi_{j},1,N-4)$}},% 2mm nach links
](p011)at(c011){?};
![alt text][3]
Beides lässt sich natürlich auch kombinieren:
\node[punkt=lightgray,
label={[gray]above:{$J(\xi_{j},1,N-4)$}},
label={[xshift=-2mm,yshift=2mm,orange]above:{$J(\xi_{j},1,N-4)$}},% je 2mm nach oben und links
](p011)at(c011){?};
![alt text][4]
Statt `xshift=-2mm,yshift=2mm` ließe sich auch `shift={(-2mm,2mm)}` mit dem gleichen Ergebnis verwenden.
----------
Wird allerdings bei `shift={(...)}` auf die Angabe von Einheiten verzichtet, dann werden die von Dir definierten `x`, `y` und, bei Angabe von drei Koordinaten, auch der `z` Richtungsvektor als Einheit verwendet. Damit wäre dann dreidimensionales Verschieben möglich.
\node[punkt=lightgray,
label={[gray]above:{$J(\xi_{j},1,N-4)$}},
label={[shift={(-2mm,2mm)},orange]above:{$J(\xi_{j},1,N-4)$}},% je 2mm nach oben und links
label={[shift={(-2,2)},purple]above:{$J(\xi_{j},1,N-4)$}},% je 2 Einheiten in x- und y-Richtung
](p011)at(c011){?};
![alt text][5]
[1]: http://texwelt.de/wissen/fragen/11421/3d-plot-achsen-ticks-manuell-beschriften-und-sonderzeichen/11443
[2]: http://texwelt.de/wissen/upfiles/tw_versch1.png
[3]: http://texwelt.de/wissen/upfiles/tw_versch2.png
[4]: http://texwelt.de/wissen/upfiles/tw_versch3.png
[5]: http://texwelt.de/wissen/upfiles/tw_versch4.png