我想在 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}