Warum sind die Teilstriche meiner Achse nach links verschoben?

Warum sind die Teilstriche meiner Achse nach links verschoben?

Ich versuche, eine Zeitleiste in einem zu erstellen tikzpicture. Allerdings sind die Markierungen meiner Zeitleiste nach links verschoben. Kann mir bitte jemand helfen, das zu beheben?

\begin{tikzpicture}[x=2cm,y=2ex]

%draw horizontal line   
\draw (1,0) -- (6,0);

%draw vertical line
\foreach \x in {1,2,3,4,5,6}
   \draw (\x cm, 3pt) -- (\x cm,-3pt);

%draw nodes
\draw (1,0) node[below=3pt] {$ 1 $} node[above=14pt] {RD};
\draw (2,0) node[below=3pt] {$ 2 $} node[above=3pt] {Defendant enters market};
\draw (3,0) node[below=3pt] {$ 3 $} node[above=14pt] {Lawsuit};
\draw (4,0) node[below=3pt] {$ 4 $} node[above=3pt] {PI Decision};
\draw (5,0) node[below=3pt] {$ 5 $} node[above=14pt] {Final Decision};
\draw (6,0) node[below=3pt] {$ 6 $} node[above=3pt] {Final Pay-offs};
\end{tikzpicture}

Antwort1

Anstelle von Einheitsvektoränderungen können Sie Skalen verwenden, die ohne transform shapeOption die Knoten nicht beeinflussen. Sie können den Code auch gleich verkürzen ...

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}[xscale=2]
\def\mylist{{"RD","Defendant enters market","Lawsuit",
             "PI Decision","Final Decision","Final Pay-offs"}}

\draw (1,0) -- (6,0);

\foreach \x[count=\xi from 0] in {1,...,6}{
   \draw (\x cm, 3pt) -- (\x cm,-3pt)   node[below=3pt] at (\x,0) {$\x$}
   \pgfextra{\pgfmathparse{Mod(\x,2)==0?"3pt":"14pt"}}
   node [above=\pgfmathresult] {\pgfmathparse{\mylist[\xi]}\pgfmathresult};
}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Sie müssen konsequent sein, wenn Sie cmEinheiten verwenden oder keine Einheiten verwenden. Geben Sie entweder jeden Knoten als (1 cm,0)usw. an (was zu überlappenden Beschriftungen führt) oder entfernen Sie (wie Jubobs vorschlägt) die cmEinheiten in der foreach-Schleife. Dies ergibt:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[x=2cm,y=2ex]

%draw horizontal line   
\draw (1,0) -- (6,0);

%draw vertical line
\foreach \x in {1,2,3,4,5,6}
   \draw (\x, 3pt) -- (\x,-3pt);

%draw nodes
\draw (1,0) node[below=3pt] {$ 1 $} node[above=14pt] {RD};
\draw (2,0) node[below=3pt] {$ 2 $} node[above=3pt] {Defendant enters market};
\draw (3,0) node[below=3pt] {$ 3 $} node[above=14pt] {Lawsuit};
\draw (4,0) node[below=3pt] {$ 4 $} node[above=3pt] {PI Decision};
\draw (5,0) node[below=3pt] {$ 5 $} node[above=14pt] {Final Decision};
\draw (6,0) node[below=3pt] {$ 6 $} node[above=3pt] {Final Pay-offs};
\end{tikzpicture}
\end{document}

in dem alles richtig ausgerichtet ist. Das Problem ist, dass, da Sie x=2cmin den Umgebungsoptionen angegeben haben, „nackte“ Koordinaten (ohne Einheiten) Vielfache von x(2 cm) sind, während Sie, wenn Sie Einheiten angeben, das Gewünschte erhalten. (Diese Nichtübereinstimmung wird standardmäßig nicht angezeigt, da der x-Vektor anfangs 1 cm beträgt.)

Beachten Sie, dass es in TikZ zwei verschiedene Koordinatensysteme gibt, die paarweise angegeben werden (x,y).xyzDas System wird verwendet, wenn keine Dimensionen (Längeneinheiten) vorhanden sind, wie in (2,3). Wie Sie gesehen haben, handelt es sich dabei um Faktoren, die die xund yVektoren multiplizieren, deren Werte angegeben werden können. DasLeinwandDas System wird verwendet, wenn Abmessungen angegeben werden, wie in (2 cm, 7 pt). Wenn Sie Systeme mischen (wie Sie es getan haben), gelten die folgenden Regeln (aus dem TikZ-Handbuch):

Hinweis: Es ist möglich, Koordinaten wie zu verwenden (1,2cm), die wederLeinwandKoordinaten nochxyzKoordinaten. Die Regel lautet: Wenn eine Koordinate von der impliziten Form ist (⟨x⟩,⟨y⟩), dann werden ⟨x⟩und ⟨y⟩unabhängig voneinander geprüft, ob sie eine Dimension haben oder dimensionslos sind. Wenn beide eine Dimension haben, dannLeinwandKoordinatensystem verwendet. Fehlt in beiden eine Dimension, xyzKoordinatensystem wird verwendet. Wenn ⟨x⟩eine Dimension hat und ⟨y⟩nicht hat, dann wird die Summe der beiden Koordinaten (⟨x⟩,0pt)und (0,⟨y⟩)verwendet. Wenn ⟨y⟩eine Dimension hat und ⟨x⟩nicht hat, dann wird die Summe der beiden Koordinaten (⟨x⟩,0)und (0pt,⟨y⟩)verwendet.

Beachten Sie außerdem: Ein Ausdruck wie (2+3cm,0)bedeutet nicht dasselbe wie (2cm+3cm,0). Wenn stattdessen ⟨x⟩oder ⟨y⟩intern eine Mischung aus Dimensionen und dimensionslosen Werten verwendet, werden alle dimensionslosen Werte zu Dimensionen „aufgewertet“, indem sie als interpretiert werden pt. Daher 2+3cmist die gleiche Dimension wie 2pt+3cm.

verwandte Informationen