我试图在同一张图上绘制两个函数:y=1
和g(x) = (e^(1/x))^3 - 1
。
但是当我用大于 10 的样本量绘制函数 g 时,我的图表完全搞砸了。我已经确认这是正确的方程,应该可以正确绘制,但不知何故却不是。下面是我的代码
\begin{tikzpicture}
\begin{axis}[
axis lines = left,
xlabel = $x$,
ylabel = {$f(x)$},
]
\addplot [
domain=0:10,
samples=100,
color=red,
]
{exp(3/x) - 1};
\addlegendentry{$(e^{(1/\alpha)})^3-1$}
\addplot [
domain=0:10,
samples=100,
color=black,
]
{1};
\end{axis}
\end{tikzpicture}
答案1
您的绘图无法正确显示的原因是 PGFplots 计算最大(非无限)值并使用它来设置是轴。因此,当步长小于~10 时,您开始探测非常接近 0 的点,这些点会很快发散到无穷大。
ymax
您可以使用和设置轴的边界ymin
(对于X轴);然而,这会导致错误,因为它会遇到溢出,因为 PGFplots 使用了一些巧妙的技巧来处理 TeX 有限的数值能力。
那么,对于您来说,最好的选择就是restrict y to domain
关键。此选项告诉 PGFplots 丢弃超出界限的值,从而完全避免溢出。
\documentclass[tikz,convert]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=left,
xlabel=$x$,
ylabel={$f(x)$},
restrict y to domain=0:100,
]
\addplot [
domain=0:10,
samples=100,
color=red,
]
{exp(3/x) - 1};
\addlegendentry{$(e^{(1/\alpha)})^3-1$}
\addplot [
domain=0:10,
samples=100,
color=black,
]
{1};
\end{axis}
\end{tikzpicture}
\end{document}