如何使用 gnuplottex 绘制 abs(sin(x))

如何使用 gnuplottex 绘制 abs(sin(x))

这是我的 MWE。为什么它没有到达 x 轴?

\documentclass{standalone}
\usepackage[miktex]{gnuplottex}
\begin{document}
    \begin{gnuplot}
        set terminal epslatex color  
        set xzeroaxis lt -1
        set yzeroaxis lt -1
        set grid xtics lc rgb '#555555' lw 1 lt 0
        set grid ytics lc rgb '#555555' lw 1 lt 0
        set yrange [-2:2]
        set xrange [-2*pi:2*pi]
        plot abs(sin(x))
    \end{gnuplot}
\end{document}

答案1

实际情况是,gnuplot 正在对 x 轴进行采样。这意味着它不会计算间隔内所有可能点的函数[-2*pi:2*pi],而只会计算有限数量的点。然后将相应的 y 值用一条线连接在一起以完成绘图。如果样本数量太少,您将获得与您的行为类似的行为。最好的做法是增加考虑的样本数量,方法是添加类似的东西set sample 1000(使用 gnuplot 测试,但未使用 gnuplottex)。

\documentclass{standalone}
\usepackage[miktex]{gnuplottex}
\begin{document}
    \begin{gnuplot}
        set terminal epslatex color  
        set xzeroaxis lt -1
        set yzeroaxis lt -1
        set grid xtics lc rgb '#555555' lw 1 lt 0
        set grid ytics lc rgb '#555555' lw 1 lt 0
        set yrange [-2:2]
        set xrange [-2*pi:2*pi]
        set sample 1000
        plot abs(sin(x))
    \end{gnuplot}
\end{document}

在 gnuplot 中set sample 100当样本设置为 100 时

在 gnuplot 中set sample 1000在此处输入图片描述

答案2

只是为了开个玩笑,这是纯 LaTeX

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    xmin=-2*pi,xmax=2*pi,
    ymin=0,ymax=1.1,
    ]
     \addplot[domain=-2*pi:2*pi,smooth,samples=1001] {abs(sin(deg(x)))};
  \end{axis}
\end{tikzpicture}
\end{document}

相关内容