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 prior
ao 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:10
modo que minhas habilidades matemáticas dependeriam de que .9
isso também deveria ser .9
do 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)
Responder1
Então você está procurando por isso?
A razão pela qual pos=0.9
nã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 pos
recurso, 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 intersections
biblioteca 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}