Tikz 图片不绘制指数图形

Tikz 图片不绘制指数图形

我试图在同一张图上绘制两个函数:y=1g(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}

输出

相关内容