pgfplots:误差线的最小尺寸

pgfplots:误差线的最小尺寸

我希望呈现一些误差线极小的数据(例如全尺寸的 1/1000)。但是,pgfplots 似乎拒绝绘制低于某个最小尺寸的误差线。

我可以想象这是故意的(因为不太可能看到非常小的误差线,因此应该避免),但我想知道是否可以关闭这种行为。

梅威瑟:

\documentclass{standalone}
\usepackage{pgfplots}

\pgfplotsset{
    error bars/error mark options = {draw = none}
}
\begin{document}
    \begin{tikzpicture}
    \begin{axis}
    [
    error bars/y dir      = both,
    error bars/y explicit = true,
    ymin = -0.5,ymax = 0.5,
%   ymin = -5,ymax = 5,
%   either scale results in the same size of error bar in the pdf, about 1/30 of fullscale
%    ymin = -0.00005,ymax = 0.00005, % this however scales correctly
    ]
    \addplot[draw = none] table[y error index = 2]
    {0 0 1e-5};
    \end{axis}
    \end{tikzpicture}
\end{document}

请注意,第三个 ymin/ymax 选择证明问题不在于数字非常小的情况下的计算精度。(或者是吗?)

答案1

总体而言,PGFPlots 的表现似乎符合预期,稍后我将解释如何“证明”这一点。但似乎您也发现了一个小错误。

y(请注意,我已将您的问题从误差线更改为x误差线,以使图像不那么高。)

  • 步骤 0:使用下面的 MWE 并放大生成的 PDF 以显示错误栏。(这里似乎您发现了一个错误,因为错误栏末尾的两条附加线不应该存在error mark options={draw=none}
  • 步骤 1:注释掉该行error mark options={draw=none}以使这个“工件”变小。
  • xmin第 2 步:删除和中的小数点后的一个零xmax,以“缩小误差线”/“缩小图片”。
  • 步骤 3:重复步骤 2,您将看到末尾误差线处的水平标记开始重叠
  • 步骤 4:重复步骤 2。现在,误差线末尾的水平标记几乎完全重叠,这就是为什么您认为进一步缩小时误差线不会进一步缩小的原因。

如果激活error mark options={draw=none}选项,未消失的结束标记会更大,因此总体上比步骤 4 之后的标记更大。

\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
    \pgfplotsset{
        compat=1.14,
        % don't show markers
        no markers,
        % changed the style of the error bar
        % to better show what is going on
        error bars/error bar style={
            red,
            thick,
            opacity=0.25,
        },
        error bars/.cd,
            % step one: comment the next line
            error mark options={draw=none},
            x dir=both,
            x explicit=true,
    }
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            % further steps:
            % enlarge x range by remove zeros after the decimal sign
            xmin=-0.00005,
            xmax=0.00005,
        ]
            \addplot+ [draw=none] table [x error index = 2] {
                0 0 1e-5
            };
        \end{axis}
    \end{tikzpicture}
\end{document}

该图显示了上述不同步骤之后的误差线

相关内容