我找不到這方面的資訊:How can I have the line shown上面/前面標記?現在已繪製在後面圖表和圖例中的菱形標記。
\documentclass{standalone}
\usepackage{xcolor, pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[mark=square*, mark options={fill=gray}] coordinates {(1,2)(2,1)};
\legend{x};
\end{axis}
\end{tikzpicture}
\end{document}
這將是所需的情況:
答案1
有一個簡單的部分:您可以使用 來獲得所需的繪圖mark layer
。只需在主圖後面的圖層上繪製標記即可。然後還有一個部分需要多一點努力:讓圖例符合要求。為此,我稍微修改了一下legend image code
。 (我不準確地知道為什麼必須這樣做,但考慮到圖例通常應該位於圖的前面,圖例中的內容位於不同的層上是有意義的,因此標記的層會被重新調整。
\documentclass{standalone}
\usepackage{xcolor, pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[set layers,mark layer=axis background,
legend image code/.code={
\draw [mark repeat=2,mark phase=2,#1] plot coordinates {
(0cm,0cm) (0.3cm,0cm) (0.6cm,0cm)};
\draw [#1] (0cm,0cm) rectangle (0.5cm,0cm);
}]
\addplot[mark=square*, mark options={fill=gray}] coordinates {(1,2)(2,1)};
\legend{x};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
歡迎來到 TeX.SE!
如果您在添加繪圖之前繪製點(但通過 tikz\node
而不是 pgfplot's ),那麼很容易:mark
\documentclass{standalone}
\usepackage{xcolor, pgfplots}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\node[diamond,fill,color=orange,inner sep=2pt] at (axis cs:1,2) {};
\node[diamond,fill,color=red,inner sep=2pt] at (axis cs:2,1) {};
\node[diamond,fill,color=green,inner sep=2pt] at (axis cs:1.8,1.2) {};
\addplot[thick] coordinates {(1,2)(2,1)};
\legend{x};
\end{axis}
\end{tikzpicture}
\end{document}
PS:我確信pgfplots
也有辦法,但我並沒有真正使用它,所以在接受之前等待另一個答案,因為我主要使用tikz
並且沒有pgfplots