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}
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 style
um den Stil bestimmter Beschriftungen abhängig von einer bestimmten Bedingung zu ändern (natürlich können Sie mit diesem Mechanismus auch „ xshift
oder“ yshift
fü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}