I would like to draw a set of random functions f(x) from point A to point B with a fixed random seed for each function. In other words, I would like to have functions which look the same each time I create the document, depending on their associated random seed.
So far, I have this:
\documentclass[tikz]{standalone}
% Random path from A=(0,0) to B=(1,1) with seed #1 and color #2
\newcommand\randompath[2]{%
\pgfextra{\pgfmathsetseed{#1}}%
\addplot[#2,domain=0:1,samples=5,smooth] { x+rand*(x)*(1-x)};%
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=0,xmax=1,ymin=0,ymax=1]
\randompath{1}{red} % 1st function
\randompath{1}{blue} % 2nd function
\randompath{1}{green} % 3rd function
\end{axis}
\end{tikzpicture}
\end{document}
However, the three functions are not identical and change their shape on recreation. Therefore, the \pgfmathsetseed
does not seem to work as intended?
How can I achieve it that for a chosen seed number, the drawn \randompath
function looks alway the same?
Best Answer
Everything that's put in
\pgfextra
is executed in a separate group at the end of theaxis
environment (after all the plots have been calculated). Remove the\pgfextra
, and you'll get three identical plots.