pgfplots, Linie vor Markierungen

pgfplots, Linie vor Markierungen

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}

Tatsächlicher Fall mit Linie unter den Markierungen

Dies wäre der gewünschte Fall:

Gewünschter Fall mit Linie über den Markierungen

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}

Bildbeschreibung hier eingeben

Antwort2

Willkommen bei TeX.SE!

Wenn Sie die Punkte aufzeichnen (aber mit Tikz \nodeund 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 pgfplotsauch einen Weg gibt, aber ich benutze ihn nicht wirklich, also warte auf eine weitere Antwort, bevor du sie annimmst, weil ich meistens tikzund nichtpgfplots

Bildbeschreibung hier eingeben

verwandte Informationen