如何绘制带有分数单位的轴?

如何绘制带有分数单位的轴?

有了这张照片,

在此处输入图片描述

我试过

\documentclass[border=2mm]{standalone} 
    \usepackage{tikz}
    \begin{document}
    \begin{tikzpicture}
            \begin{scope}
                \draw[->] (-5,0) -- (10,0) node[right] {$x$};
                \foreach \x/\y in {-5,-4,...,10}
                \draw[xshift=\x cm] (0pt,1.2pt) -- (0pt,-1.2pt) node[below,fill=white]
                { $\y$};
                \end{scope}
        \end{tikzpicture}
        \end{document}

我不知道如何画这幅画。

在此处输入图片描述

我该如何画?有没有一种通用的方法来表示分数,例如 3/20,4/9?

答案1

像这样:

在此处输入图片描述

代码:

\documentclass[tikz,border=5mm]{standalone}

\begin{document}    
    \begin{tikzpicture}[line join=round,scale=4]
        \newcommand*{\ar}{1/6}
        \draw[very thick,black,-latex]   (-1.2,0) -- (1.6,0) node[right] {$x$};     
        \foreach \x in {-7,-6,...,9}
        \draw (\ar*\x,1pt) -- (\ar*\x,-1pt);
        \foreach \x/\y in {-5*\ar/{-$\frac56$},-2*\ar/{-$\frac13$},0/{0},1/{1},7*\ar/{$\frac76$}}
        \node at (\x,-3pt) () {\y}; 
    \end{tikzpicture}
\end{document}

答案2

  • 正如我在评论中所说,你所说的“一般方法”是什么意思并不清楚……你需要明确写出所有想要的分数,或者构建复杂的算法来计算分数。
  • 如果您的刻度刻度标签稀疏,最简单的方法是将它们写在 selectec 刻度上,类似于 @Raffaele Santoro 答案 (+1) 中的做法。例如,如问题中的第二幅图所示,您可以通过以下 (简约) 方式获得所需结果:
\documentclass[margin=3mm]{standalone}
\usepackage{tikz}

\begin{document}
    \begin{tikzpicture}
%\newcommand*{\ar}{1/6}
\draw[thick,->]   (-6,0) -- (10,0) node[right] {$x$};
\foreach \x in {-5,...,9}
    \draw (\x,2pt) -- ++ (0,-4pt);
\foreach \x/\y in {-5/-\frac{5}{6},-2/-\frac{1}{3},0/0,1/1,2/\frac{7}{6}}
    \node at (\x,-12pt) {$\y$};
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容