答案1
您几乎已经完成了;您只需根据\foreach
索引更改节点文本。
\foreach
是变量\x
从 1 到 5 的一个循环,步长为 1(这里步长由第一个元素和第二个元素之间的差给出{1,2,...,5}
,您不需要列出所有元素,tikz
它会为您计算它们)。
shift={(\x,0)}
表示沿水平轴\draw
移动了,您也可以使用可以替换为您喜欢的任何度量单位。\x
xshift=\x cm
cm
node[below=2ex] {$t_\x$}
在路径下方 写一个节点,其中包含文本$t_\x$
(自动替换),2ex。\x
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\draw (0,0) -- (6,0);
\foreach \x in {1,2,...,5}
\draw[shift={(\x,0)},color=black] (0pt,-4pt) -- (0pt, 4pt) node[below=2ex]
{$t_\x$};
\end{tikzpicture}
\end{figure}
\end{document}
编辑:第二个原帖者的请求。
在绘制路径时,您可以用 来命名节点,而不必编写节点文本node (t\x) {}
,其中t\x
是名称(\x
会自动替换),然后参考这些名称来定位标签。
tikzlibrarypositioning
允许您决定将一个节点相对于另一个节点放置在哪里以及距离多远。例如,\node[below=2ex of t5] {$t$};
表示“将节点放置在名为 的节点下方 2ex 处t5
”。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\draw (0,0) -- (6,0);
\foreach \x in {1,2,...,5}
{\draw[shift={(\x,0)},color=black] (0pt,-4pt) -- (0pt, 4pt) node (t\x) {};}
\node[below=2ex of t5] {$t$};
\node[below=2ex of t1] {$t- \Delta t$};
\end{tikzpicture}
\end{figure}
\end{document}
答案2
由于您要求使用列表作为标签,因此您可以使用以下方法。我认为pgf
有一个内置的数组机制,但我不记得宏名称了……
\documentclass[tikz, border=3mm]{standalone}
\makeatletter
\newcommand{\setupmylabellist}[1]{%
\count255 = 0\relax%
\@for\x:=#1\do{
\expandafter\edef\csname mylabel\the\count255\endcsname{\x}
\advance\count255 by 1\relax%
}
}
\newcommand{\usemylabel}[1]{\csname mylabel#1\endcsname}
\makeatother
\begin{document}
\begin{tikzpicture}[
thick,
]
\setupmylabellist{foo1,bar1,baz1,foo2,bar2,baz2}
\foreach \x in {0,1,2,3,4,5}
\draw [shift={(\x,0)}] (0.1,0.2) -- + (0,-0.4) node[below] {\usemylabel{\x}};
%
\draw[thick] (0,0) -- node[below=8mm] {X axis title} + (5.2,0);
%
\end{tikzpicture}
\end{document}