
Ich muss die X-Koordinaten eines Punkts als zusätzliche X-Markierungen eingeben, aber die übliche Vorgehensweise ist irrational, da es viele Punkte geben kann und deren Duplizierung extra x ticks
schlecht ist.
\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\begin{document}
%---------------------------------------------------------
\begin{tikzpicture}[
]
\begin{axis}[
width=\linewidth, axis lines = middle,
extra x ticks = {1.1, 2.2,3.3}, % irrational decision, because there can be many points
xtick=data,
]
\addplot[] {x};
\addplot[color=red,mark=*, only marks] coordinates {
(1.1,1)
(2.2,2)
(3.3,3)
};
\end{axis}
\end{tikzpicture}
%---------------------------------------------------------
\end{document}
Antwort1
Wenn Sie tun
xtick=data, % data points from first \addplot
extra x ticks={-4,...,4} % regularly spaced ticks
Sie erhalten Markierungen für jeden Punkt im ersten \addplot
und zusätzlich Markierungen in regelmäßigen Abständen. Das kann allerdings etwas chaotisch werden. Eine Möglichkeit, sie zu trennen, wäre, die Koordinatenmarkierungen nach unten zu verschieben, d. h.
xticklabel style={yshift=-15pt},
extra x tick style={tick label style={yshift=15pt}}
Die zweite Zeile ist erforderlich, da die erste auch die zusätzlichen Ticklabels beeinflusst.
Wenn Sie beispielsweise die Optionen eines nodes near coords
hinzufügen, werden die x-Werte neben den Punkten in diesem Diagramm hinzugefügt. Der folgende Code demonstriert beides.point meta=x,nodes near coords
\addplot
\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\begin{document}
%---------------------------------------------------------
\begin{tikzpicture}[
]
\begin{axis}[
width=\linewidth,
axis lines = middle,
xtick=data, % data points from first \addplot
extra x ticks={-4,...,4}, % regularly spaced ticks
xticklabel style={yshift=-15pt},
extra x tick style={tick label style={yshift=15pt}}
]
\addplot[color=red,mark=*,
only marks,
point meta=x, % use x-value for nodes near coords
nodes near coords
] coordinates {
(1.1,1)
(2.2,2)
(3.3,3)
};
\addplot[] {x};
\end{axis}
\end{tikzpicture}
%---------------------------------------------------------
\end{document}