两个阴影区域之间的暗线

两个阴影区域之间的暗线

我试图为上轮廓线组着色。由于我分两步进行(一步用于组的弯曲部分,另一步用于组的直线部分),因此两者之间出现了一些重叠,导致出现了一条不应该出现的较暗的垂直线。![在此处输入图片描述

我的猜测是,较暗的线条是由于我试图填充的两个区域重叠而出现的,而不是渲染错误。我尝试稍微减小第二个区域(指令的矩形fill)的大小,但结果区域之间出现了一条白线(而不是暗线)。我相信我应该定义,path setZ以便我一直到轴的末端,但我不知道该怎么做。这是我的 MWE

\documentclass{article}
\usepackage{tikz,pgfplots}

\pgfplotsset{compat = newest}
\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{figure}
   \begin{tikzpicture}
     \begin{axis}[ 
       ticks=none, 
       axis x line=bottom,
       axis y line=left,
       xmin=0,xmax=16,
       ymin=0,ymax=16,
       ]
     \addplot[
       name path=setZ,
       ] table {
       4.68 12
       5.68 9
       6.68 7
       7.68 6
       10.16 5
       };
    \path [name path=axiss] (4.68,16) -- (10.16,16);
    \addplot[gray,opacity=0.2] fill between [
       of=setZ and axiss];
    \fill[gray,opacity=0.2] (10.16,5)--(16,5)--(16,16)--(10.16,16);
    \end{axis}
   \end{tikzpicture}
\end{figure}

\end{document}

编辑:一种可能性是在路径中创建最后一个点,使其到达图示轴的末端,例如

     \addplot[white,name path=setZ] table {
        4.68 12
        5.68 9
        6.68 7
        7.68 6
        10.16 5
        16 5
        };

在绘图本身之前,并相应地修改 axiss 的定义。但是,我将数据存储在一个文件中,我不希望有两个几乎相同的单独文件。

答案1

fillbetween为了避免出现观看伪影,您应该用一次填充填充整个区域。这个简单的区域无需使用。

\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\pgfplotstableread{
4.68 12
5.68 9
6.68 7
7.68 6
10.16 5
}\loadedtable
\begin{axis}[ 
axis lines=center,
ticks=none, 
xmin=0, xmax=16,
ymin=0, ymax=16,
]
\addplot[draw=none, fill=gray!20] table {\loadedtable} -| (current axis.north east) -| cycle;
\addplot[mark=none] table {\loadedtable};
\end{axis}
\end{tikzpicture}
\end{document}

带曲线和填充区域的图形

相关内容