Wie gibt man die Position von Knoten mit Beschriftungen in einem von pgfplots generierten Diagramm an?

Wie gibt man die Position von Knoten mit Beschriftungen in einem von pgfplots generierten Diagramm an?

Meine Frage ist, wie man die Position eines Knotens in einem Diagramm angibt. Hier ist ein MWE:

\begin{figure}
\begin{tikzpicture}
    \begin{axis}[
        xlabel=X (\%),
        ylabel=Y (\%),
            legend style={
                draw=none, fill=none, 
                font=\tiny,
                at={(0.5,0.17)},
                anchor=north,
                legend columns=4,
                legend cell align={right},
            },
            xmajorgrids,
        ]
            %CORING (2023)
        \addplot+ [red, mark=square*, nodes near coords,every node near coord/.append style=
                        {xshift=15pt,yshift=8pt,anchor=east,font=\footnotesize}, ultra thick]
                coordinates {
                    (88.25, 93.07)
                    (78.66, 93.83)
                    (66.60, 94.20)
                    (58.19, 94.42)
                    (40.00, 94.67)
                    (19.16, 94.75)
                    (00.00, 93.96)};
            \legend{
                    Method A
                    }
    \end{axis}
\end{tikzpicture}
\caption{My method. %in terms of accuracy versus FLOPs reduction. 
}
\end{figure}

Bildbeschreibung hier eingeben

In diesem Beispiel wird mein Text von einer Zeile überlappt. Die Position aller Knoten wird folgendermaßen festgelegt:

{xshift=15pt,yshift=8pt}

Aber das funktioniert nicht bei allen Knoten. Deshalb möchte ich änderndie Position jedes Knotens. ChatGPT schlägt dies vor, aber es funktioniert nicht:

Sie können die Position jedes Knotens ändern, indem Sie jeder Koordinate die Option „node[pos]“ hinzufügen, wobei „pos“ ein Wert zwischen 0 und 1 ist, der die Position des Knotens entlang der Linie angibt, die die Koordinate mit ihrer Beschriftung verbindet. Um beispielsweise den Knoten für die erste Koordinate nach rechts zu verschieben, können Sie „node[pos=0.5]“ anstelle von „Knoten in der Nähe von Koordinaten“ festlegen und die Werte „xshift“ und „yshift“ entsprechend anpassen.

Dank im Voraus!

Antwort1

Sie können die Option verwenden, coordinate styleum den Stil bestimmter Beschriftungen abhängig von einer bestimmten Bedingung zu ändern (natürlich können Sie mit diesem Mechanismus auch „ xshiftoder“ yshiftfür Beschriftungen an bestimmten Koordinaten festlegen):

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        xlabel=X (\%),
        ylabel=Y (\%),
        legend style={
            draw=none, fill=none, 
            font=\tiny,
            at={(0.5,0.17)},
            anchor=north,
            legend columns=4,
            legend cell align={right},
        },
        xmajorgrids,
    ]
        %CORING (2023)
        \addplot+ [
            red, 
            mark=square*, 
            nodes near coords,
            every node near coord/.append style={
                font=\footnotesize
            }, 
            ultra thick, 
            coordinate style/.condition={x < 10 || x > 40}{
                anchor=west,
            },
            coordinate style/.condition={x > 60}{
                anchor=east,
            }
        ]
        coordinates {
            (88.25, 93.07)
            (78.66, 93.83)
            (66.60, 94.20)
            (58.19, 94.42)
            (40.00, 94.67)
            (19.16, 94.75)
            (00.00, 93.96)
        };
        \legend{
            Method A
        }
    \end{axis}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen