pgfplots:符号和线条的“不正确”重叠

pgfplots:符号和线条的“不正确”重叠

我刚刚注意到 pgfplots 似乎首先绘制所有线条,然后绘制所有符号。考虑这个 MWE:

\documentclass[10pt]{standalone}

\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}

\begin{axis}
  \addplot[mark=*,color=red] coordinates {(0.1,0.1) (0.9,0.9)};
  \addplot[mark=*,color=black] coordinates {(0.1,0.09) (0.9,0.91)};
\end{axis}

\end{tikzpicture}
\end{document} 

以下是部分输出的特写:

在此处输入图片描述

查看输出的其他部分可以清楚地发现绘制顺序是:

  1. 红线
  2. 黑线
  3. 红色符号
  4. 黑色符号

在我看来这似乎是“不正确的”。是的,我承认我应该担心更重要的事情,但我怎样才能让 pgfplots 首先绘制所有黑色项目,然后绘制所有红色项目(或反之亦然)?

答案1

根据我的发现,clip mode=individual这里的诀窍是这样的。

\documentclass[tikz,10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xshift=-8cm]
  \addplot[mark=*,color=red] coordinates {(0.1,0.1) (0.9,0.9)};
  \addplot[mark=*,color=black] coordinates {(0.1,0.09) (0.9,0.91)};
\end{axis}
\begin{axis}[clip mode=individual]
  \addplot[mark=*,color=red] coordinates {(0.1,0.1) (0.9,0.9)};
  \addplot[mark=*,color=black] coordinates {(0.1,0.09) (0.9,0.91)};
\end{axis}

\end{tikzpicture}
\end{document} 

在此处输入图片描述

请注意我会想法这确实mark layer=like plot可以解决问题,但事实似乎并非如此。

相关内容