我想用 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}
我明白了:
这显然是错误的。在 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}
理想情况下,我希望某些东西能够自动运行,而不需要知道渐近线。