使用 pgfplots 将函数图限制在 x 值范围内。

使用 pgfplots 将函数图限制在 x 值范围内。

pgfplots我想使用和创建两个函数的图LaTeX。我只想要某个函数在某个区间内,我举个例子:

\begin{tikzpicture}
\begin{axis}[
    axis x line=middle,
    axis y line=middle,
    axis on top,
    tick label style={font=\tiny},
    smooth,
    xlabel=$x$,
    xmin=-4, xmax=4,
    ymin=-1.5, ymax=1.5,
    width=0.8\textwidth,
    height=0.4\textwidth,
    legend style={at={(0.02,0.97)},anchor=north west},
]
\addplot[draw=red]{2/(1+exp(-x))-1};
\addplot[draw=blue,domain=0:4]{1/(1+exp(-x))};
\end{axis}
\end{tikzpicture}

现在我想要的是第二个蓝色函数只在范围内绘制x=0:4,但输出包含从开始的整个间隔的图形-4 to 4。我滚动浏览了整个 pgf手册,但看起来这domain=a:b是解决方案。也许我的PGF版本过时了?我使用的是 Debian Squeeze PGF2.0 版。

编辑:我尝试了PGF手册中的几个示例,但很多都不起作用。我相信这是我的机器/Debian/其他东西的问题,而不是 的问题PGF。我目前的解决方法是为每个图表生成一个函数值表并将其包含在内。\addplot file {function_values.dat};例如,我的PGF忽略了samples=n设置,许多图表看起来很糟糕。使用函数值表可以大大改善输出。

答案1

您的示例的问题似乎是您将tikz密钥与pgf密钥混用。请尝试以下方法:

\addplot[draw=blue][domain=0:4]{1/(1+exp(-x))};

答案2

正如您正确假设的那样,您的 PGF 和 pgfplots 版本已过时。当前的 pgfplots 版本是 1.4.1,您的示例可以正确编译。它包含在 TeX Live 2010 中。不幸的是,Debian 仍然只有 TeX Live 2009 的软件包(即使在不稳定版本中也是如此),因此只有 pgfplots 1.2.2。(pgf 版本是 2.10 而不是 2.00。)

获取更新软件包的最简单解决方案是安装手动 TeX Live 2010。TeX Live 有预编译的二进制文件,因此安装快速而轻松(当然,“快速”取决于您的互联网连接)。如果您需要任何帮助,请单独提问(但鉴于您是 Debian 用户,我怀疑您不需要任何帮助)。

TL2010 的结果

答案3

现在我使用绘制图形

\addplot[mark=none,draw=blue,sharp plot][domain=0:4,samples=200] {2/(1+exp(-8*x))-1};

看起来不错。我甚至添加了一些我不想画图例的图

\addplot[draw=gray][forget plot] { ... };

这样就创建了我想要的图表。

相关内容