Pgfplots 停止绘图

Pgfplots 停止绘图

我正在尝试绘制函数

(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}

在此处输入图片描述

相关内容