Como colocar coordenadas x de pontos como x ticks extras?

Como colocar coordenadas x de pontos como x ticks extras?

Preciso colocar coordenadas x de pontos como x ticks extras, mas a maneira comum é irracional, porque pode haver muitos pontos e duplicá-los extra x ticksé ruim.

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

Responder1

Se você fizer

xtick=data, % data points from first \addplot
extra x ticks={-4,...,4} % regularly spaced ticks

você receberá ticks para cada ponto no primeiro \addplote, além disso, ticks regularmente espaçados. Pode ficar um pouco confuso. Uma maneira de separá-los seria deslocar os ticks das coordenadas para baixo, ou seja

xticklabel style={yshift=-15pt},
extra x tick style={tick label style={yshift=15pt}}

A segunda linha é necessária porque a primeira também afeta os ticklabels extras.

Para nodes near coords, adicionar point meta=x,nodes near coordsas opções de an \addplotadicionará os valores de x próximos aos pontos nesse gráfico. O código abaixo demonstra ambos.

insira a descrição da imagem aqui

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

informação relacionada