¿Cómo poner las coordenadas x de un punto como x ticks adicionales?

¿Cómo poner las coordenadas x de un punto como x ticks adicionales?

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 coordslas opciones de an \addplotagregará los valores de x junto a los puntos en ese gráfico. El siguiente código demuestra ambos.

ingrese la descripción de la imagen aquí

\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}

información relacionada