
Necesito poner las coordenadas x de puntos a como ticks x adicionales, pero la forma común es irracional, porque puede haber muchos puntos y duplicarlos enextra x ticks
es deficiente.
\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}
Respuesta1
Si lo haces
xtick=data, % data points from first \addplot
extra x ticks={-4,...,4} % regularly spaced ticks
Obtendrás ticks por cada punto en el primero.\addplot
y además ticks espaciados regularmente. Aunque puede resultar un poco complicado. Una forma de separarlos sería desplazar las marcas de coordenadas hacia abajo, es decir
xticklabel style={yshift=-15pt},
extra x tick style={tick label style={yshift=15pt}}
La segunda línea es necesaria porque la primera también afecta las etiquetas adicionales.
Para nodes near coords
, agregar point meta=x,nodes near coords
las opciones de an \addplot
agregará los valores de x junto a los puntos en ese gráfico. El siguiente código demuestra ambos.
\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}