如何在 Tikz 中创建这条简单的线条

如何在 Tikz 中创建这条简单的线条

我只是想知道如何在 tikz 中创建这条简单的线条。我找到了很多例子,但它们太复杂了,我看不懂。在此处输入图片描述

\begin{tikzpicture}[xscale=1.2]
\draw (0,0) -- (6,0); 
\foreach \x in {1,2,3,4,5}
\draw[shift={(\x,0)},color=black] (0pt,0pt) -- (0pt, 1pt) node[below] 
{$t_1, t_2, t_3, t_4, t_5$};
\end{tikzpicture}

答案1

您几乎已经完成了;您只需根据\foreach索引更改节点文本。

\foreach是变量\x从 1 到 5 的一个循环,步长为 1(这里步长由第一个元素和第二个元素之间的差给出{1,2,...,5},您不需要列出所有元素,tikz它会为您计算它们)。

shift={(\x,0)}表示沿水平轴\draw移动了,您也可以使用可以替换为您喜欢的任何度量单位。\xxshift=\x cmcm

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} 

在此处输入图片描述

相关内容