Pgfplots:fillbetween、largelimits 和 soft clip 具有有趣的交互作用

Pgfplots:fillbetween、largelimits 和 soft clip 具有有趣的交互作用

设置:TexLive 2018

考虑下面的 MWE,由我的一位用户提供。他抱怨说,一旦soft clip使用,模式就会消失。创建 MWE 时,我们注意到以下情况

  • 如果enlargelimits移除,则显示图案
  • 如果enlargelimits已启用但soft clip已禁用,则显示模式

谁能解释一下这里发生了什么?

我认为这enlargelimits与实际用例无关,但我们想知道为什么会发生这种情况

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{patterns}
\usepgfplotslibrary{fillbetween}
 \pgfplotsset{compat=1.16} 
\begin{document}

\begin{tikzpicture}
\begin{axis}[
  width = 13cm,
  axis lines = center,
  grid = minor,
  xmin = -0,
  xmax = 1.05,
  ymin = -0.25,
  ymax = 0.45,
%   enlargelimits = {abs=0.04}, % if this is enabled the pattern disappears
    domain = 0:1,
   xtick distance = 0.1,
   ytick distance = 0.1,
   xticklabels = {,,},
   yticklabels = {,,},
]
\addplot [smooth, samples=100, color=black, thick] {x*(1-x)};
\addplot [name path=B, smooth, samples=100, color=black, thick, dotted] {x*(1-x)+0.06};
\addplot [name path=A, smooth, samples=100, color=black, thick, dotted] {x*(1-x)-0.06};
\addplot [
 pattern=north west lines, pattern color=black!50
]
fill between[of=A and B,
soft clip={domain=0:1} % if this is enabled and enlargelimits is
%enabled pattern disappears
];
\end{axis}
\end{tikzpicture}
\end{document}

答案1

这是计算中的一个缺陷soft clip:显然软剪辑和绘图域相同的事实遇到了一些计算问题。

我会处理这个错误。

作为一种解决方法,我建议仅当它实际上与情节域不同时才使用软剪辑(如果相同则没有任何效果)。

相关内容