Tikz 画像が指数関数をグラフ化しない

Tikz 画像が指数関数をグラフ化しない

2 つの関数を同じグラフ上にグラフ化しようとしています: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(同様にバツaxis); ただし、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}

出力

関連情報