具有垂直渐近线的函数的 pgfplots 图错误

具有垂直渐近线的函数的 pgfplots 图错误

我想用 pgfplots 绘制函数 $\frac{3 x}{1 + x}$。使用

\begin{tikzpicture}
    \begin{axis}[axis x line=none, axis y line=none, no markers]
        \addplot {3 * x / (1 + x)};
    \end{axis}
\end{tikzpicture}

我明白了:使用 pgfplots 绘制错误图表

这显然是错误的。在 Grapher.app 中绘制的相同函数: 使用 OS X 的 Grapher.app 校正绘图

答案1

您可以设置restrict y to domain=-20:20。这将丢弃该范围之外的所有坐标,并且绘图将被中断。您应该确保指定的范围略大于可见轴限制,否则绘图可能不会一直延伸到边缘。

\documentclass[a4paper,12pt, border=5mm]{standalone}
\usepackage{pgfplots}

\begin{document}%
\begin{tikzpicture}
    \begin{axis}[
        axis lines*=middle,
        no markers,
        ymin=-5, ymax=10,
        enlarge y limits=true,
        enlarge x limits=false,
        restrict y to domain=-20:20]
        \addplot [thick, samples=50, smooth] {3 * x / (1 + x)};
    \end{axis}
\end{tikzpicture}
\end{document}

答案2

一个可能的(不太优雅的)解决方案是在渐近线处分割绘图:

\begin{tikzpicture}
    \begin{axis}[
        height=10cm,
        width=10cm,
        xmin = -5,
        xmax = 5,
        ymin=-10,
        ymax=10,
        grid=major,
        samples=100,
        enlargelimits=false,
        legend pos= north east
    ]

    \addplot+[mark=none, smooth,domain=-10:-1.05,draw=blue] {(3 * \x) / (1 +
      \x)};
    \addplot+[mark=none, smooth,domain=-0.95:10,draw=blue] {(3 * \x) / (1 + \x)};


    \end{axis}
\end{tikzpicture}

理想情况下,我希望某些东西能够自动运行,而不需要知道渐近线。

相关内容