为什么这两个绘图命令会给出不同的结果?

为什么这两个绘图命令会给出不同的结果?

为什么以下两个 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}

输出

在此处输入图片描述

相关内容