绘制正弦函数

绘制正弦函数

我想在 -2.5 和 2.5 区间内绘制 y = |sin(pi*x)| 的图形。(图形位于 x 轴上或上方,两端的高度均为 1。)TikZ 绘制一条通过原点的线。图形的标签应位于图形的右端 - 它可以延伸到 x 轴之外。如何将标签“x”添加到 x 轴并将“y”添加到 y 轴?

\documentclass[10pt]{amsart}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}


\begin{document}

\hspace*{\fill}
\begin{tikzpicture}
\begin{axis}[width=4in,axis equal image,
          xmax=3,ymax=1.5,
          axis lines=middle,
          restrict y to domain=-1:2,
          enlargelimits,
          axis line style={shorten >=-0.25cm,shorten <=-0.25cm,latex-latex},
          ticklabel style={fill=white},
          extra x ticks={-2,-1,0,1,2},
          %extra x tick style={grid=none}
]

\addplot[domain=-2.5:2.5,mark=none,samples=200] {abs(sin(pi(x)))} node[fill=white, below left, yshift=-3pt]{$y=\vert\sin(\pi x)\vert$};


\end{axis}
\end{tikzpicture}
\hspace{\fill}

答案1

正如 percusse 所指出的,添加xlabelylabel轴选项可以解决标签问题。

另一个问题是绘制正确的函数,这可以通过修改 中的公式来解决\addplot。请注意 本身以度为单位进行运算,因此需要将pgfplots弧度转换为度。还必须进行显式乘法:而不是。deg()pi*xpi(x)

编辑:感谢 Jake 的评论,在pgfplots1.11 或更高版本中还有另一种使用弧度的方法。引用更改日志http://pgfplots.sourceforge.net/

  • 新功能:'trig format plots=rad' 允许在三角函数计算中使用弧度

因此,如果trig format plots=rad添加到轴选项,deg()就不再需要。

使用示例deg()

示例代码的输出

\documentclass[10pt]{amsart}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}

\begin{document}

\hspace*{\fill}
\begin{tikzpicture}
\begin{axis}[width=4in,axis equal image,
          xmax=3,ymax=1.5,
          axis lines=middle,
          enlargelimits,
          axis line style={shorten >=-0.25cm,shorten <=-0.25cm,latex-latex},
          ticklabel style={fill=white},
          extra x ticks={0},
          xlabel=$x$,ylabel=$y$,
          clip=false,
]

\addplot[domain=-2.5:2.5,mark=none,samples=200] {abs(sin(deg(pi*x)))} node[fill=white, right]{$y=\vert\sin(\pi x)\vert$};

\end{axis}
\end{tikzpicture}
\end{document}

相关内容