Hierzu konnte ich keine Informationen finden: Wie kann ich die Zeile anzeigen lassen?über/vorder Marker? Im Moment ist er eingezeichnethinterdie Rautenmarkierung im Diagramm sowie in der Legende.
\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}
Dies wäre der gewünschte Fall:
Antwort1
Es gibt einen einfachen Teil: Sie können das Diagramm wie gewünscht gestalten, indem Sie verwenden mark layer
. Zeichnen Sie einfach die Markierungen auf eine Ebene, die sich hinter dem Hauptdiagramm befindet. Und dann gibt es den Teil, der etwas mehr Aufwand erfordert: die Legende entsprechend anzupassen. Zu diesem Zweck habe ich die leicht geändert legend image code
. (Ich weiß nicht genauwissenwarum muss man das machen, aber da die Legende normalerweise vor den Diagrammen stehen sollte, ist es sinnvoll, dass die Sachen in der Legende auf eine andere Ebene kommen und somit die Ebene der Markierung neu angepasst wird.)
\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}
Antwort2
Willkommen bei TeX.SE!
Wenn Sie die Punkte aufzeichnen (aber mit Tikz \node
und nicht mit pgfplot mark
), bevor Sie das Diagramm hinzufügen, ist es einfach:
\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: Ich bin sicher, dass es pgfplots
auch einen Weg gibt, aber ich benutze ihn nicht wirklich, also warte auf eine weitere Antwort, bevor du sie annimmst, weil ich meistens tikz
und nichtpgfplots