考虑以下 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}