pgfplots:坐标丢失

pgfplots:坐标丢失

考虑下面的图表:

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
       xmin=1.1,xmax=1.5,
       xlabel={$Q^2$},
       ylabel={$\alpha_{\textrm{eff}}\left(Q^2\right)$},
       axis on top,
       ticks=none,
       scaled ticks=false, 
       legend style={at={(0.5,1.)},anchor=north,legend cell align=left,legend plot pos=left, font=\small,draw=none,fill=none} ,
      ]
  \addplot[color=red,samples=300] {1/(1 - 2 * ln x)};
  \addlegendentry{$\alpha$}
  \addplot[color=blue,samples=300] {1/(2 * ln x)};
  \addlegendentry{$\alpha_s$}
\end{axis}
\end{tikzpicture}
\end{document}

这两个函数在用于绘图的机制中过去没有任何不连续性 - 它们应该表现得很有规律。然而,我得到了很多这样的结果:

NOTE: coordinate (2Y1.6876381e-2],3Y0.0e0]) has been dropped because it is unbounded (in y). (see also unbounded coords=jump)

有人能解释一下这是怎么回事吗,我该如何避免这些消息?我对仅仅抑制它们不感兴趣 - 我想了解它们出现的原因是什么。

我还注意到,改变样本数量会以令人惊讶的方式影响图表:

samples=300

有 300 个采样点

samples=200

有 200 个采样点

samples=100

有 100 个采样点

samples=50

有 50 个采样点

我对最后一张图中的极端跳跃感到惊讶——看起来只使用了 2-3 个点……这是什么原因造成的?

答案1

由于您没有明确指定域(独立于轴限制),pgfplots因此使用其默认域 [-5,5]。因此,尽管您pgfplots确实试图在不连续性附近的区域进行绘图。通过指定键来解决此问题domain=1.1:1.5;可以对axis选项列表中的所有绘图或命令中的每个绘图执行此操作\addplot

采样问题与之相关:样本分布在域中,而不是轴视口中查看的区域。因此,在最后一个示例中,您总共有 50 个样本,但在轴的可视区域中您只能看到 2 个(每个图)。

在这里您可以看到domain为避免警告而指定的值。我们现在还可以看到整个域中的 10 个样本(我指定了samples=10)。

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
       xmin=1.1,xmax=1.5,
       domain=1.1:1.5,
       samples=10,
       xlabel={$Q^2$},
       ylabel={$\alpha_{\textrm{eff}}\left(Q^2\right)$},
       axis on top,
       ticks=none,
       scaled ticks=false, 
       legend style={at={(0.5,1.)},anchor=north,legend cell align=left,legend plot pos=left, font=\small,draw=none,fill=none} ,
      ]
  \addplot[color=red] {1/(1 - 2 * ln x)};
  \addlegendentry{$\alpha$}
  \addplot[color=blue] {1/(2 * ln x)};
  \addlegendentry{$\alpha_s$}
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容