![为什么这两个绘图命令会给出不同的结果?](https://linux22.com/image/276004/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B8%A4%E4%B8%AA%E7%BB%98%E5%9B%BE%E5%91%BD%E4%BB%A4%E4%BC%9A%E7%BB%99%E5%87%BA%E4%B8%8D%E5%90%8C%E7%9A%84%E7%BB%93%E6%9E%9C%EF%BC%9F.png)
为什么以下两个 MWE 代码使用带有和不带有 gnuplot 的 pgfplots 会产生不同的结果(相移)?
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [thick,mark=none,domain=0:6,samples=1000] {cos(deg(2*x+atan(1)))};
\end{axis}
\end{tikzpicture}
\end{document}
和
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [thick,mark=none,domain=0:6,samples=1000] gnuplot {cos(2*x+atan(1))};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
PGFmath 函数atan
(以及所有其他三角函数)使用度数的角度(作为输入或输出)。
此deg
函数用于将弧度角转换为度数。在 PGFmath 中,此函数的正确编写方式为
cos(deg(2 * x) + atan(1))
或者
cos(2 * deg(x) + atan(1)) = cos(2 * deg x + atan 1) = cos(2 * deg x + 45)
代码
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[thick,domain=0:6, samples=1000]
\addplot [ultra thick] gnuplot {cos( 2*x + atan(1) )};
\addplot [red] {cos(deg(2*x + atan(1)))};
\addplot [green] {cos(deg(2*x) + atan(1) )};
\end{axis}
\end{tikzpicture}
\end{document}