f(x) = a + b.sin(cx + d) 的图形,其中 d 不为空

f(x) = a + b.sin(cx + d) 的图形,其中 d 不为空

我遇到了一个问题:$f(x) = a + b.sin(cx + d)$ 的图形,当 d 不为空时,在 tikz/pgfplot 中不起作用。有人能帮忙吗?

我认为问题在于我不知道 tikz/pgfplot 如何转换为度数。我尝试过 (sin(\x + d) r); (sin((\xr) + (dr))) 和其他变体,但这不起作用。

答案1

我认为使用 PGFPlots 可能比使用 TikZ\draw plot机制更容易。您可以通过设置来告诉 PGFPlots 使用弧度作为三角函数trig format plots=rad

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}

\begin{axis}[
    domain=0:2*pi,
    axis lines=middle,
    enlargelimits=true,
    trig format plots=rad
]
\addplot [orange, thick, samples=100] {sin( x + 1.047196 )};
\end{axis}

\end{tikzpicture}
\end{document}

如果您确实想为此使用普通的 TikZ,则需要使用\draw plot (\x, {sin( (\x + 1.047196)r });(将里面的整个表达式sin(...)从弧度转换为度):

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\draw [orange, thick] plot [samples=100, domain=0:2*pi] (\x, {sin( (\x + 1.047196)r });
\end{tikzpicture}
\end{document}

答案2

您还可以使用该datavisualization库来绘制图形:

\documentclass[tikz, border=5mm]{standalone}

\usetikzlibrary{datavisualization.formats.functions}

\begin{document}
  \begin{tikzpicture}
    \datavisualization [school book axes,
                        visualize as line=sin,
                        sin={style={thick, orange}}
                       ]
    data[set=sin, format=function] {
      var x : interval [0:2*pi] samples 100;
      func y = sin((\value{x} + 1.047196) r);
    };
  \end{tikzpicture}
\end{document}

有关 rad 位置的解释,r请参阅 Jake 的回答。

渲染图像

相关内容