绘制周期为 1 的余弦和正弦函数?

绘制周期为 1 的余弦和正弦函数?

我想在同一个坐标系中绘制$\sin(2\pi x)$\cos 2 \pi x$ $\in [3/4, 5/4]$。我该怎么做?

\begin{tikzpicture}

\begin{axis}[domain=3/4:5/4,legend pos=outer north east]
\addplot {sin(deg(x))}; 
\addplot {cos(deg(x))}; 

\legend{$\sin(2 \pi x)$,$\cos(2 \pi x)$}
\end{axis}
\end{tikzpicture}

问题是 addplot。我该如何绘制它,{sin(deg(2\pi x))}; 不起作用?

答案1

在 中pgfplots,三角函数以度为默认输入。如果我们有一个以弧度为单位的值(如x本例),我们可以使用deg()函数将其转换为度。进一步乘以x2*pi产生一个周期为一弧度的函数。

\documentclass{standalone}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=3/4:5/4,legend pos=outer north east]
\addplot {sin(deg(2*pi*x))}; 
\addplot {cos(deg(2*pi*x))}; 
\legend{$\sin(2 \pi x)$,$\cos(2 \pi x)$}
\end{axis}
\end{tikzpicture}
\end{document}

编辑:正如 percusse 在评论中指出的那样,更全局的修复方法是使用trig format=radtrig format plots=rad。前者会更改所有参数的三角格式,而后者只会更改三角函数(sin、cos、tan 等)的格式。以下是示例:

\documentclass{standalone}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=3/4:5/4,legend pos=outer north east,trig format plots=rad]
\addplot {sin(2*pi*x)}; 
\addplot {cos(2*pi*x)}; 
\legend{$\sin(2 \pi x)$,$\cos(2 \pi x)$}
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

Erik 的回答很完美,但这里还有另一个使用 pgfplots 的答案。我想展示一些可用于绘制图表的功能,例如定义函数、标记轴等。请注意,您无需定义函数,只需在代码行前面写上函数即可轻松绘制函数\addplot

在此处输入图片描述

% pdflatex
\documentclass{standalone}
    \usepackage{tikz}
    \usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
       \pgfmathdeclarefunction{S}{2}{\pgfmathparse{sin(deg(#1*#2))}}
       \pgfmathdeclarefunction{C}{2}{\pgfmathparse{cos(deg(#1*#2))}}
\begin{axis}
        [
    xtick={
        -6.28318, -4.7123889, -3.14159, -1.5708,
        1.5708, 3.14159, 4.7123889, 6.28318
    },
    xticklabels={
        $-2\pi$, $-\frac{3\pi}{2}$, $-\pi$, $\frac{\pi}{2}$,
        $\frac{\pi}{2}$, $\pi$, $\frac{3\pi}{2}$, $2\pi$
    },
    axis lines = center,
    grid=both,minor tick num=1,
    xlabel=$x$,ylabel=$y$,
    tick align=inside,
        legend style={at={(0.5,-0.1)},
        anchor=north,legend columns=2},
        legend entries={$\sin 2x$\\$\cos 2x$\\},
        domain=-2*pi:2*pi,
        samples=200,
        every axis y label/.style={rotate=0, black, at={(0.5,1.05)},},
        every axis x label/.style={rotate=0, black, at={(1.05,0.5)},},
        ]
        \addplot [red,thick] {S(2,x)};
        \addplot [blue,thick] {C(2,x)};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容