在 tikz 中向轴添加简单标签?

在 tikz 中向轴添加简单标签?

所以,我有一个由 tikz 生成的图表,我想在轴上添加标签,例如“-2、-1、0、1、2”等等。我搜索了几个小时,几乎只找到与“{axis}”有关的东西,而我使用的不是这个。这似乎应该很简单,但我似乎无法弄清楚。任何帮助都将不胜感激。

提前致谢!

 \documentclass{article}
 \usepackage{tikz}
 \begin{document}
 \begin{tikzpicture}
  \draw[step=.5cm,gray!50,very thin] (-2,-2) grid (2,2);
  \draw[<->,scale=.5,thick] (-4,0) -- (4,0);
  \draw[<->,scale=.5,thick] (0,-4) -- (0,4);
  \draw[<->,scale=.5,domain=-2.4495:2.4495,smooth,very thick,variable=\x,blue] plot ({\x},{-\x*\x+2});
 \end{tikzpicture}
 \end{document}

在此处输入图片描述

编辑:schtandard 的图像(见下面的评论)如下。

在此处输入图片描述

答案1

我建议你使用 TikZ 库datavisualization。它有很多工具可以绘制这样的曲线,包括不同的轴样式和生成刻度的机制。请查看 TikZ 手册中的第六章。

\documentclass{scrartcl}

\usepackage{tikz}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}

\begin{document}

\begin{tikzpicture}[scale=.7]
    \datavisualization [school book axes, visualize as smooth line,
                        x axis={min value=-4, max value=4},
                        y axis={min value=-4, max value=4},
                        all axes={grid}]
        data [format=function] {
            var x : interval [-2.5:2.5];
            func y = - \value x*\value x + 2;
        };
\end{tikzpicture}

\end{document}

使用数据可视化库的输出


如果您喜欢手动完成所有操作,则可以使用\foreach循环,例如:

\documentclass{article}

\usepackage{tikz}

\begin{document}

\begin{tikzpicture} [scale=.7]
    \draw[help lines] (-4 ,-4) grid (4, 4);
    \draw[<->,thick] (-4, 0) -- (4, 0);
    \draw[<->,thick] (0, -4) -- (0, 4);
    \foreach \x in {-3, ..., -1, 1, 2, ..., 3} {
        \draw [thick] (\x, 0) -- ++(0, -.2) ++(0, -.15) node [below, outer sep=0pt, inner sep=0pt] {\small\(\x\)};
        \draw [thick] (0, \x) -- ++(-.2, 0) ++(-.15, 0) node [left, outer sep=0pt, inner sep=0pt] {\small\(\x\)};
    }
    \draw[<->,domain=-2.4495:2.4495,smooth,very thick,variable=\x,blue] plot ({\x},{-\x*\x+2});
\end{tikzpicture}

\end{document}

输出全部手工绘制

需要注意的事项:

  • 我用整个图片的缩放比例代替了每条路径的缩放比例。我设置了scale=.7,因为刻度太挤了scale=.5(当然你可以使用更少的刻度)。

  • gray!50, very thin用替换了help lines,这是专为此类用途而设计的样式。如果您希望使用不同的帮助线(例如不同的颜色),最好更改此样式,而不是将其硬编码到网格命令中。

  • ...在这里循环中的使用\foreach有点过度(1, 2, ..., 3毕竟没有多大作用)并且只是为了向您展示如何使用它。

答案2

此类图表旨在包装pgfplots

 \documentclass{article}
 \usepackage{pgfplots}
 \pgfplotsset{compat=1.15}

 \begin{document}
    \begin{tikzpicture}
\begin{axis}[
    axis lines = middle,
    grid,
    domain=-2.4495:2.4495,
    xmin=-3.5, xmax=3.5,
    ymin=-4.5, ymax=4.5,
    no marks
            ]
  \addplot +[very thick] {-\x*\x+2};
\end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容