我正在绘制指数函数,我需要指出图中的某些特定值。
点名称 (x;y)
N1 点 (2;50)
N2 点(4;25)
我正在尝试跟随Gonzalo Medina 的回答但我没有取得任何成功
\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}
请注意,我在这里只尝试指向 N1,但即使这样也不起作用。另外,我不想只为了画出交点而画一条线,但我不知道如何用其他方式来做。
有什么建议吗?
答案1
Alenanno 答案的另一种选择,在节点处使用节点名称:
\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}
在上述代码中,我认为最新的pgfplots
包是可用的。如果是 1.11 之前的版本,则应在坐标中添加axis cs:
,例如(axis cs:1,25)
。
答案2
通常情况下,你需要交叉点才能做好工作。还有其他解决方案,但我能想到的解决方案需要的代码比单纯的交叉点还要多。不过,在你的情况下,你甚至不需要交叉点。你只需画线就可以了。
输出
代码
\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}