TikZ:如何将绘图标记设置到前台

TikZ:如何将绘图标记设置到前台

有时我会有一些情节标记和一些台词之后.因此痕迹变得不美观。

我怎样才能说出这样的话:“每个标记都到前台”?

请注意,我不想将\coordinates 设置为前台(它们仅用于示例)或者可能使用其他技巧。我真的想知道如何将 plotmarks 设置为前台。

在此处输入图片描述

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\begin{document}

\begin{tikzpicture}[
Mark/.style={ mark=*, mark size=1.5pt, mark options={fill=yellow} },
]
\coordinate[](A) at (0,0);
\coordinate[](B) at (2,3);
\coordinate[](C) at (1,1);


\foreach \P in {A,B,C}{
\draw[]  plot[Mark]  coordinates{(\P)};
}

\draw[] (A) -- (B) -- (C);
\end{tikzpicture}
\end{document}

答案1

以下是三种可能的解决方案:

  • 在背景层上画线,并加载tikzbackgrounds
  • on above layer使用包中的选项在前景层上绘制标记tikz-layers,并
  • 绘制实心圆作为\nodes,则会自动避免重叠(参见pgfmanualv3.1.7a,第 17.11 节连接节点:使用节点作为坐标)。
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{backgrounds, plotmarks}

\begin{document}

\begin{tikzpicture}[
  Mark/.style={ mark=*, mark size=1.5pt, mark options={fill=yellow} },
]
  \coordinate[](A) at (0,0);
  \coordinate[](B) at (2,3);
  \coordinate[](C) at (1,1);
  
  \foreach \P in {A,B,C}{
    \draw[]  plot[Mark]  coordinates{(\P)};
  }
  
  \begin{scope}[on background layer]
    \draw[] (A) -- (B) -- (C);
  \end{scope}
\end{tikzpicture}
\end{document}
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\usepackage{tikz-layers}

\begin{document}
\begin{tikzpicture}[
  Mark/.style={ mark=*, mark size=1.5pt, mark options={fill=yellow} },
]
  \coordinate[](A) at (0,0);
  \coordinate[](B) at (2,3);
  \coordinate[](C) at (1,1);
  
  \begin{scope}[on above layer]
    \foreach \P in {A,B,C}{
      \draw[]  plot[Mark]  coordinates{(\P)};
    }
  \end{scope}
  
  \draw[] (A) -- (B) -- (C);
\end{tikzpicture}
\end{document}
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\usepackage{tikz-layers}

\begin{document}

\begin{tikzpicture}[
  Mark/.style={ circle, draw, inner sep=0pt, minimum size=3pt, fill=yellow },
]
  \node[Mark] (A) at (0,0) {};
  \node[Mark] (B) at (2,3) {};
  \node[Mark] (C) at (1,1) {};
  
  \draw[] (A) -- (B) -- (C);
\end{tikzpicture}
\end{document}

这三种方式的输出相同 在此处输入图片描述

此外,如果你有很多坐标需要逐一链接,那么

  • \draw[mark=*, ...] plot coordinates {(0,0) (2,3) (1,1)};
  • 甚至pgfplots 可能会有帮助;

相关内容