使用 Tikz 和水平仪绘制

使用 Tikz 和水平仪绘制

如何在 Tikz 中生成从 0 到 10 的 f(x)=x 曲线,其中 x 轴为 (1,0)、(2,0) 等处的小直线,y 轴为 (0,1)、(0,2) 等处的小直线?

答案1

最简单的解决方案是使用pgfplots基于 PGF/TikZ 构建的包。

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[const plot,
            domain=0:10,
            mark=none,
            samples=11] {x};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

查看手动的用于附加选项,如标题、图例、标记等。

您也可以保留 TikZ 符号,但您的弹药将受到限制。

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[domain=0:10,samples=11]
\draw[very thin,color=gray] (-0.1,-1.1) grid (10,10);
\draw[->] (-0.2,0) -- (10.2,0) node[right] {$x$};
\draw[->] (0,-1.2) -- (0,10.2) node[above] {$f(x)$};
\draw[ultra thick] plot [const plot] (\x,\x);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

如果您只想使用 tikz 而不使用 pgfplots,这里有两种方法可以获取沿轴的刻度,我假设您想要获取的就是这个。我希望代码是不言自明的。

代码如下

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}

\begin{document}

%method 1 : with a loop
\begin{tikzpicture}

\draw[->] (0,0) -- (10.2,0) node[right] {$x$};
\foreach \k in {1,...,10}{\draw (\k,-0.05) -- ++(0,0.1);}

\draw[->] (0,0) -- (0,10.2) node[left] {$y$};
\foreach \k in {1,...,10}{\draw (-0.05,\k) -- ++(0.1,0);}

\draw[blue,domain=0:10] plot (\x,\x);
\end{tikzpicture}

%method 2 : with a decoration
\begin{tikzpicture}

\draw[->] (0,0) -- (10.2,0) node[right] {$x$};
\draw[decoration={ticks,segment length=1cm,amplitude=2pt},decorate] (0,0) -- (10.2,0);

\draw[->] (0,0) -- (0,10.2) node[left] {$y$};
\draw[decoration={ticks,segment length=1cm,amplitude=2pt},decorate] (0,0) -- (0,10.2);

\draw[blue,domain=0:10] plot (\x,\x);

\end{tikzpicture}

\end{document}

结果是

在此处输入图片描述

相关内容