我正在尝试使用以下 tikz 代码为作业添加图表
包装:
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{fancyhdr}
\usepackage{ulem}
\usepackage{tikz}
\usepackage{pgfplots}
tikz代码:
\begin{tikzpicture}[
declare function={
func(\x) = (\x < 1\4) * (0) +
and(\x >= 1/3, \x <= 1/4) * (sin(pi/(\x))) +
(\x > 1/3) * (0)
;
}
]
\begin{axis}[
axis z line=middle, axis y line=middle,
ymin=-3, ymax=3, ytick ={-3,...,3}, ylabel=$y$,
xmin=-2, xmax=2, xtick ={-2,...,2}, xlabel=$x$,
domain=-2:2,samples=101,
]
\addplot [black,thick] {func(\x)};
\end{axis}
\end{tikzpicture}
语法大部分是从另一篇文章中复制而来的,我只是改变了一些变量和函数。当我尝试编译(这是正确的词吗?)时,它给了我以下错误消息“!未定义的控制序列”(它指出 \addplot 是罪魁祸首)。
另外,我应该用一般的 n 来绘制这个带边界的图表,我选择了 1/3 和 1/4 来表示它,但如果可能的话,我希望图表上的 x 值标记为 1/n 和 1/n+1。提前致谢。
答案1
欢迎来到 TeX.SE!在评论中澄清后,我现在绘制了一系列(sin(180/(\x)))^2
间隔内的函数[1/(n+1),1/n]
。我希望您发现语法是不言自明的,并且这可以让您绘制所需的内容。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}[
declare function={func(\n,\x) =
ifthenelse(\x>=1/(\n+1),ifthenelse( \x <=
1/\n,(sin(180/(\x)))^2,0),0);
}
]
\begin{axis}[
axis z line=middle, axis y line=middle,
ymin=-3, ymax=3, ytick ={-3,...,3}, ylabel=$y$,
xmin=-2, xmax=2, xtick ={-2,...,2}, xlabel=$x$,
domain=0.1:1,samples=12*3*4*5+1,
]
\pgfplotsinvokeforeach{1,...,6}
{\addplot [black,thick] {func(#1,x)};}
\draw[thick] (-2,0) -- (2,0);
\end{axis}
\end{tikzpicture}
\end{document}