Hallo,

wie schon bei meiner ersten Frage geht es um das folgende 3D-Plot: alt text

Ich würde nun gerne die Beschriftung an einem Node, in diesem Fall: $J(\xi_{j},1,N-3)$, verschieben, jedoch etwas präziser als mit <below>/<above> <left>/<right> möglich ist.

Wie muss ich da vorgehen? Siehe auch diesen Thread, in dem auch der Code zu finden ist: 3D-Plot. Achsen-Ticks manuell beschriften und Sonderzeichen

Danke.

gefragt 04 Feb '15, 21:00

roadrunner_ac's gravatar image

roadrunner_ac
593913
Akzeptiert-Rate: 0%

bearbeitet 04 Feb '15, 22:14

esdd's gravatar image

esdd
17.7k254256


Als Minimalbeispiel verwende ich einen gegenüber 3D-Plot. Achsen-Ticks manuell beschriften und Sonderzeichen 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.

Open in Online-Editor
\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

Um das Verschieben zeigen zu können, habe ich ein zweidimensionales Gitter eingefügt:

Open in Online-Editor
% 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.

Open in Online-Editor
  \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

Beides lässt sich natürlich auch kombinieren:

Open in Online-Editor
  \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

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.

Open in Online-Editor
  \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

Permanenter link

beantwortet 04 Feb '15, 22:12

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

bearbeitet 04 Feb '15, 22:21

Herzlichen Dank!!!!

(05 Feb '15, 03:09) roadrunner_ac
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×20
×12

gestellte Frage: 04 Feb '15, 21:00

Frage wurde gesehen: 8,443 Mal

zuletzt geändert: 05 Feb '15, 03:09