Anotando pontos específicos no gráfico tikz

Anotando pontos específicos no gráfico tikz

Estou traçando uma função exponencial e preciso apontar alguns valores específicos no meu gráfico.

Nome do ponto (x;y)

Ponto N1 (2;50)

Ponto N2 (4;25)

Estou tentando seguirA resposta de Gonzalo Medinamas não estou obtendo nenhum sucesso

\begin{figure}[H]
\begin{tikzpicture}[scale=1.5]
\begin{axis}[
    domain=10:1,
    axis lines=left,
    grid=both,
    clip=false,
    xlabel=$Tempo (dias)$,
    ylabel=$Atividade (Ci)$
]
\addplot[name path=curve,smooth,thick,black]{100*exp(-x*ln(2)/2)};
\addplot[name path=line,smooth,dashed,red]{50};
\path[name intersections={of=curve and line, by={a}}];
\draw[dashed] 
  (a) -- (a|-{axis cs:0,0}) node[anchor=north,font=\tiny] {$N=1$};
\node[fill,inner sep=1.5pt] at (a) {};
\end{axis}
\end{tikzpicture}
\end{figure}

Observe que tentei apenas apontar N1 aqui e mesmo isso não funcionou. Além disso, não quero traçar uma linha só para fazer a interseção, mas não sei como fazer de outra forma.

Algum conselho?

Responder1

Uma alternativa à resposta de Alenanno, com nomes de nós nos nós:

\documentclass[margin=10pt]{standalone}
    \usepackage{pgfplots}
    \pgfplotsset{compat=1.13}

\begin{document}
    \begin{tikzpicture}[scale=1.5,
X/.style = {circle, fill=black, inner sep=1.5pt, 
            label={[font=\scriptsize]above right:#1},
            node contents={}}
                    ]
\begin{axis}[
    domain=10:1,
    axis lines=left,
    grid=both,
    clip=false,
    xlabel=\textit{Tempo (dias)},
    ylabel=\textit{Atividade (Ci)}
]
\addplot[smooth,thick,black]{100*exp(-x*ln(2)/2)};
%
\draw[dashed] (1,50) -- (2,50) node[X={$N=1$}] -- (2,3);
\draw[dashed] (1,25) -- (4,25) node[X={$N=2$}] -- (4,3);
\end{axis}
    \end{tikzpicture}
\end{document}

No código acima considero que o pgfplotspacote recente está disponível. Caso seja anterior à versão 1.11, então nas coordenadas deve ser adicionado axis cs:algo como (axis cs:1,25).

insira a descrição da imagem aqui

Responder2

Normalmente você precisaria de cruzamentos para fazer um bom trabalho. Haveria outras soluções, mas as que consigo imaginar exigem ainda mais código do que meras interseções. Ainda assim, no seu caso você nem precisa de cruzamentos. Você pode simplesmente desenhar as linhas.

Saída

insira a descrição da imagem aqui

Código

\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}

\pgfplotsset{compat=1.13}

\tikzset{
    dot/.style={fill=black, circle, inner sep=1.5pt},
    nod/.style={sloped, at start, xshift=3mm, font=\scriptsize, above},
}

\begin{tikzpicture}[scale=1.5]
\begin{axis}[
    domain=10:1,
    axis lines=left,
    grid=both,
    clip=false,
    xlabel=Tempo (dias),
    ylabel=Atividade (Ci)
]
\addplot[name path=curve,smooth,thick,black]{100*exp(-x*ln(2)/2)};

\draw[dashed] (2,5) -- (2,50) coordinate[dot] node[nod] {$N=1$} -- (1,50);

\draw[dashed] (4,5) -- (4,25) coordinate[dot] node[nod] {$N=2$} -- (1,25);
\end{axis}
\end{tikzpicture}
\end{document}

informação relacionada