我试图rnd
在给定的样本位置处绘制平滑噪声函数(蓝色)和某个其他函数(红色)之间的线段。但是,当我重新评估该函数时,随机数会发生变化,因此线不会与噪声函数接触。我不确定如何纠正这个问题。
以下是代码:
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.6}
\begin{document}
\begin{tikzpicture}[
declare function={
g(\x)=((0.1*(\x-2)^3)+1)/4;
gn(\x)=g(\x)+0.1*rnd;
f(\x)=(0.2*(\x-1.4)^2+0.8)/4;
}
]
\begin{axis}[
width=6.5cm,
axis x line=center,
axis y line=center,
xtick={0.0,1,...,4.0},
ytick={0.0,0.1,...,0.59},
domain = 0:4,
samples = 31,
ymin=0.0,
xmin=0.0,
xmax=4.0,
ymax=0.6,
]
\pgfmathsetseed{126838}
\addplot+[mark=none,color=blue,thick, smooth] {gn(x)};
\addplot+ [
red,
only marks,
error bars/.cd,
y dir=both,
y explicit,
error mark=none,
] coordinates {
(0.2,{f(0.2)}) += (0,{gn(0.2)-f(0.2)})
(1.0,{f(1.0)}) += (0,{gn(1.0)-f(1.0)})
(1.2,{f(1.2)}) += (0,{gn(1.2)-f(1.2)})
(2.5,{f(2.5)}) += (0,{gn(2.5)-f(2.5)})
(3.0,{f(3.0)}) += (0,{gn(3.0)-f(3.0)})
};
\addplot+[mark=none,color=red,thick] {f(x)};
\end{axis}
\end{tikzpicture}
\end{document}