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 PGF
2.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 用户,我怀疑您不需要任何帮助)。
答案3
现在我使用绘制图形
\addplot[mark=none,draw=blue,sharp plot][domain=0:4,samples=200] {2/(1+exp(-8*x))-1};
看起来不错。我甚至添加了一些我不想画图例的图
\addplot[draw=gray][forget plot] { ... };
这样就创建了我想要的图表。