如何在没有垂直线的 pgfplots 中绘制方波

如何在没有垂直线的 pgfplots 中绘制方波

我想在 pgfplots 中绘制方波,但没有垂直线(即看起来像函数图)。我试过了,但这显然行不通:

\documentclass{article}

\usepackage{pgfplots}

\begin{document}

 \begin{tikzpicture}
   \begin{axis}[samples=1000,no markers,domain=-10:10]
        \addplot gnuplot {sgn(sin(x))};
      \end{axis}
    \end{tikzpicture}

\end{document}

也许可以将 y 域限制到集合内{-1,1},但我不知道如何做。

答案1

也许你想得到这个:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[samples=1000,no markers,domain=-10:10]
    \addplot+[restrict y to domain=1:1,forget plot] gnuplot {sgn(sin(x))};
    \addplot+[restrict y to domain=-1:-1] table {\jobname.pgf-plot.table};
  \end{axis}
\end{tikzpicture}
\end{document}

解释:

\addplot+[restrict y to domain=1:1,forget plot] gnuplot {sgn(sin(x))};

确保(例如绘图+颜色cycle list)用于绘图。因为gnuplot程序 gnuplot 用于计算绘图的坐标。它们保存在\jobname.pgf-plot.table工作目录中的文件中。forget plot确保此绘图不会进入图例,绘图数量不会改变。因此下一步中的绘图

\addplot+[restrict y to domain=-1:-1] table {\jobname.pgf-plot.table};

将使用与 相同的设置cycle list。如果添加\addlegendentry此图,则转到图例。第一步中由 gnuplot 计算的表可以重复使用。

答案2

我将使用 pgfplots 的常数图(参见手册中的第 4.5.3 节):

\begin{tikzpicture}
  \begin{axis}
    \addplot+[jump mark left,no marks,blue,thick] 
         coordinates {(0,1) (1,-1) (2,1) (3,-1) (4,1)};
  \end{axis}
\end{tikzpicture}

相关内容