Como posso conectar um ponto aleatório em um gráfico suave ao eixo?

Como posso conectar um ponto aleatório em um gráfico suave ao eixo?

Eu tenho um desenho aleatório e suave (apenas conectando pontos suavemente) e quero destacar um ponto entre os pontos. O destaque deve acontecer conectando o ponto no gráfico com sua coordenada no eixo x.

Aqui está um MWE que eu gostaria de manter como está

\documentclass{standalone}

\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
 \begin{tikzpicture}
      \begin{axis}[ytick=\empty,xtick=\empty, 
             axis on top=false,xmin=0, xmax=10, ymin=0, ymax=5, 
             axis x line=left, axis y line=left, clip=false]
      \node at (rel axis cs:1,0) [above, anchor=north west] {$x$};
      \node at (rel axis cs:0,1) [above, anchor=west] {$y$};
      \addplot[smooth] coordinates {
       (0,0)
       (2,3)
       (5,1.2)
       (5.8,4)
       (8,3.8)
       (10,3.5) 
       } coordinate [pos=.9] (prior) ;

       \end{axis}
  \end{tikzpicture}
\end{document}

Quero conectar a coordenada priorao eixo x usando uma linha paralela ao eixo y. Minha opinião foi essa

\draw[dotted] (prior)-- (rel axis cs:0.9,0);

No entanto, por algum motivo que não está claro para mim, esta não é a coordenada correta (está um pouco à direita). Agora me pergunto, como posso avaliar a coordenada correta? A função traça um intervalo de 0:10modo que minhas habilidades matemáticas dependeriam de que .9isso também deveria ser .9do comprimento do eixo x. No entanto, isso parece estar incorreto. Alguém tem uma ideia de qual é a coordenada certa? Ou ainda mais simples: como posso conectar o ponto (anterior) ao eixo x da maneira mais curta possível?

Tentei trabalhar com a solução sugerida em resposta a esta pergunta:Pgfplots suaves. O problema é que não conheço a coordenada y do ponto anterior.

Para completar, aqui está a saída que ele produz (não importa os diferentes rótulos do eixo)

insira a descrição da imagem aqui

Responder1

Então você está procurando por isso?

A razão pela qual pos=0.9não está em x = 0,9 é que, de fato, a coordenada está colocada em 90% do comprimento da linha. E porque há muitos "para cima e para baixo" no início da linha (ou seja, em valores baixos de x), esta parte da linha é "mais longa" do que a parte no final da linha (ou seja, em valores altos de x). ), que é quase uma linha reta horizontal.

(Apenas para completar: então, se sua intenção era colocar um nó em x = 0,9 na linha, isso atualmente não é possível usando diretamente o posrecurso, mas já existe uma solicitação de recurso para isso noRastreador PGFPlots. Mas é claro que isso também pode ser feito indiretamente, por exemplo, usando a intersectionsbiblioteca do TikZ.)

% used PGFPlots v1.14
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
    \pgfplotsset{
        % use this `compat' level or higher so there is no need any more to prefix
        % TikZ coordinates with `axis cs:'
        compat=1.11,
    }
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        xtick=\empty,
        ytick=\empty,
        xmin=0,
        xmax=10,
        ymin=0,
        ymax=5,
        axis lines=center,
        % (moved the axis labels here)
        xlabel={$x$},
        ylabel={$y$},
        xlabel style={anchor=north west},
        ylabel style={anchor=north east},
    ]

        \addplot [smooth] coordinates {
            (0,0)
            (2,3)
            (5,1.2)
            (5.8,4)
            (8,3.8)
            (10,3.5)
        }
            coordinate [pos=.9] (prior)
        ;

        % to draw a vertical line from `prior' down to the x axis use the `|-' operator and state an arbitrary x value, but 0 as y value
        \draw [dotted] (prior) -- (prior |- 0,0);
    \end{axis}
\end{tikzpicture}
\end{document}

imagem mostrando o resultado do código acima

informação relacionada