我正在尝试绘制函数
(0.5*x+1)^(-2)
对于 [0,6] 中的 x。
这是我的代码:
\documentclass{scrartcl}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
thick,
axis lines = center,
axis line style={->},
xmin = 0, xmax = 6.1,
ymin = 0, ymax = 1.1,
restrict y to domain = 0:1,
xlabel = {$t$}, ylabel = {$\phi(t)$},
xlabel style={at=(current axis.right of origin), anchor=west},
ylabel style={at=(current axis.above origin), anchor=south},
]
\addplot[no marks,
thick,
samples = 200,
] expression {(0.5*x+1)^(-2)};
\end{axis}
\end{tikzpicture}
\end{document}
这产生了
问题是绘图在 x = 5 之后停止。同样对于 x = 0,函数值应该是 1。但这似乎不是我的绘图中的情况。
答案1
您需要指定x
方向上的域;默认值为domain=-5:5
(请参阅 v1.12 手册第 54 页)。在绘图选项中明确设置域可以解决此问题。另一个问题x=0
通过增加样本数量来解决。以下代码应该可以解决这两个问题:
\documentclass{scrartcl}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
thick,
axis lines = center,
axis line style={->},
xmin = 0, xmax = 6.1,
ymin = 0, ymax = 1.1,
% restrict y to domain = 0:1,
xlabel = {$t$}, ylabel = {$\phi(t)$},
xlabel style={at=(current axis.right of origin), anchor=west},
ylabel style={at=(current axis.above origin), anchor=south},
]
\addplot[no marks,
thick,
samples = 1000,
domain=0:6] expression {(0.5*x+1)^(-2)};
\end{axis}
\end{tikzpicture}
\end{document}