基于给定函数的 x 坐标的标签函数

基于给定函数的 x 坐标的标签函数

考虑以下 MWE:

在此处输入图片描述

\documentclass[letterpaper,11pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\begin{document}
\begin{tikzpicture}[domain=-2:2,samples=100]
    \draw[font=\small,-Stealth] (-3,0)  -- (3,0) node[right]{$x$} ;
    \draw[font=\small,-Stealth] (0,-2)  -- (0,2) node[above]{$y$};
        \foreach \x in {-1,0,...,1}
            \draw (\x, -2pt) -- ++ (0,4pt);%[shift={(2,1.5)}]
        \foreach \y in {-1,0,...,1}
            \draw (-2pt, \y) -- ++ (4pt, 0);%[shift={(2,1.5)}]
    \clip[rounded corners=10pt] (-3,-2) rectangle (3,2);
    \node[label=left:{$f(x) =x^2$}] at (-1.5,1.25) {};
    \draw[color=red,thick] plot (\x,{(\x)^2-1});
\end{tikzpicture}
\end{document}

是否有可能有一个节点定义在指定的 x 坐标处标记函数?

假设我希望函数的标签位于 x 坐标x=-1.5,那么它会自动计算该标签的正确坐标;在本例中y=(-1.5)^2-1

答案1

这就是 的目的declare function。也就是说,你可以通过以下方式声明一个函数

declare function={f(\x)=(\x)^2-1;}

然后使用它例如

\node[label={[font=\footnotesize]left:{$f(x) =x^2$}}] at (-1.5,{f(-1.5)}) {};

现在知道函数在 处的值x=-1.5,或者

\draw[color=red,thick] plot (\x,{f(\x)});

绘制函数。(对于对称图,最好使用奇数个样本,100 个样本已经足够了,您可能需要减少样本数量并使用键smooth。)

完整代码:

\documentclass[letterpaper,11pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\begin{document}
\begin{tikzpicture}[domain=-2:2,samples=101,declare function={f(\x)=(\x)^2-1;}]
    \draw[font=\small,-Stealth] (-3,0)  -- (3,0) node[right]{$x$} ;
    \draw[font=\small,-Stealth] (0,-2)  -- (0,2) node[above]{$y$};
        \foreach \x in {-1,0,...,1}
            \draw (\x, -2pt) -- ++ (0,4pt);%[shift={(2,1.5)}]
        \foreach \y in {-1,0,...,1}
            \draw (-2pt, \y) -- ++ (4pt, 0);%[shift={(2,1.5)}]
    \node[label={[font=\footnotesize]left:{$f(x) =x^2$}}] at (-1.5,{f(-1.5)}) {};
    \clip[rounded corners=10pt] (-3,-2) rectangle (3,2);
    \draw[color=red,thick] plot (\x,{f(\x)});
\end{tikzpicture}
\end{document}

请注意,pgfplots一维图(此类型)是路径,因此您可以通过指定路径上的位置来添加标签。

\documentclass[letterpaper,11pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}

\begin{document}
\begin{tikzpicture}[declare function={f(\x)=(\x)^2-1;}]
 \begin{axis}[axis lines=middle,ymax=2.2,ymin=-1.2,
    xlabel={$x$},ylabel={$y$}]
  \addplot[color=red,domain=-2:2,smooth,semithick] {f(x)}
    node[pos=0.275,below left] {$f(x)$};
 \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容