I don't really get the question so I hope this is what you wanted. If you include a full document (such that we copy paste and see the problem on our systems) things are much more easier.
Here, you can change the default setting within a scope but your block
style had a node distance
which was resetting every time it is issued. I've made it 2mm such that we can see the difference easier.
\documentclass[tikz]{standalone}
\usetikzlibrary{arrows,shapes.geometric,positioning}
\begin{document}
\begin{tikzpicture}[decision/.style={diamond, draw, text width=4.5em, text badly centered, node distance=3.5cm, inner sep=0pt},
block/.style ={rectangle, draw, text width=6em, text centered, rounded corners, minimum height=4em, minimum height=2em},
cloud/.style ={draw, ellipse, minimum height=2em},
line/.style ={draw,-latex'},
node distance = 1cm,
auto]
\node [block] (1st) {1st};
\node [block, right= of 1st] (2nd1) {2nd1};
\begin{scope}[node distance=2mm and 10mm]%Here we change it for everything inside this scope
\node [block, above= of 2nd1] (2nd2) {2nd2};
\node [block, below= of 2nd1] (2nd3) {2nd3};
\node [block, right= of 2nd1] (3rd1) {3rd1};
\node [block, above= of 3rd1] (3rd2) {3rd2};
\node [block, above= of 3rd2] (3rd3) {3rd3};
\end{scope}
\node [block, below= of 3rd1] (3rd4) {3rd4};
\node [block, below= of 3rd4] (3rd5) {3rd5};
\path [line] (1st) -- (2nd1);
\path [line] (2nd1) -- (2nd2);
\path [line] (2nd1) -- (2nd3);
\path [line] (2nd2) -- (3rd3);
\path [line] (2nd1) -- (3rd1);
\path [line] (1st) -- (2nd1);
\end{tikzpicture}
\end{document}

To fill the area between two curves with random points, you can plot the average of the two functions and jitter the markers using random noise with a range that's equal to the distance between the curves.
To demonstrate, here's what the plot for the random dots looks like without the noise component:

In this case, the distance between the two curves is constant, so the noise can be generated using a uniform distribution centered halfway between the curves with a range equal to the offset between the curves:

To get a denser pattern, simply increase the number of samples:

The same approach works for more complicated functions:

However, things get more complicated when you have two curves that aren't a constant distant apart: In that case, the density of the random dots will not be constant throughout the domain:

To achieve a constant density, you'll need to adjust the horizontal distribution of the random points. So instead of the points being a noisy function of x
, we'll use a parametric equation ( x(t), 0.5*a(x(t)) + 0.5*b(x(t)) + U(a(x(t)), b(x(t)))
.
The horizontal distance between two adjacent points has to be inversely proportional to the distance between the two bounding curves (since you need more points to fill a wider band).
To find the horizontal positions for the points that fulfill that requirements, you can use the antiderivative of the inverse of the difference of the two bounding curves.
In this case, for example, you would need the antiderivative of f(x) = 1/(a(x)-b(x)) = 1 / (2*(x/4)^2+1)
. I think I should be able to do this by hand, but I cheated and used Wolfram Alpha. The required function is F(x) = 2 sqrt(2) (atan(x/(2 sqrt(2))))
. In order to stretch this function over the plot domain, you can normalize it using the factor x_max/F(x_max)
. The function for the horizontal positions of the points is thus
F*(t) = 2 sqrt(2) (atan(t/(2*sqrt(2)))) * 5 / 2.99
Using this to plot the random dots without the noise component, we get:

Adding the noise:

Code for the two parallel lines:
\documentclass[tikz, border=5mm]{standalone}
\usepackage{pgfplots}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}[
declare function={a(\x)=0.75*\x-2;},
declare function={b(\x)=0.75*\x-1;}
]
\begin{axis}[
domain=0:5,
axis lines=middle,
axis equal image,
xtick=\empty, ytick=\empty,
enlargelimits=true,
clip mode=individual, clip=false
]
\addplot [red, only marks, mark=*, samples=300, mark size=0.75]
{0.5*(a(x)+b(x)) + 0.5*rand*(a(x)-b(x))};
\addplot [thick] {a(x)};
\addplot [thick] {b(x)};
\end{axis}
\end{tikzpicture}
\end{document}
Code for the parabolas:
\documentclass[tikz, border=5mm]{standalone}
\usepackage{pgfplots}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}[
declare function={a(\x)=-(0.5*\x-1.5)^2+1;},
declare function={b(\x)=-(0.5*\x-1.5)^2;},
]
\begin{axis}[
domain=1:5,
axis lines=middle,
axis equal image,
xtick=\empty, ytick=\empty,
enlargelimits=true,
clip mode=individual, clip=false
]
\addplot [red, only marks, mark=*, samples=300, mark size=0.75]
{0.5*(a(x)+b(x)) + 0.5*rand*(a(x)-b(x))};
\addplot [thick] {a(x)};
\addplot [thick] {b(x)};
\end{axis}
\end{tikzpicture}
\end{document}
Code for the funnel:
\documentclass[tikz, border=5mm]{standalone}
\usepackage{pgfplots}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}[
declare function={a(\x)=(\x/4)^2;},
declare function={b(\x)=-(\x/4)^2-1;},
declare function={f(\x) = 2*sqrt(2)*rad(atan(\x/(2*sqrt(2))))*5/2.99;}
]
\begin{axis}[
domain=0:5, xmin=0,
axis lines=middle,
axis equal image,
xtick=\empty, ytick=\empty,
enlargelimits=true,
clip mode=individual, clip=false
]
\addplot [red, only marks, mark=*, samples=500, mark size=0.75]
(f(x), {0.5*(a(x)+b(x)) + rand * ( a(f(x)) - b(f(x))) / 2});
\addplot [thick] {a(x)};
\addplot [thick] {b(x)};
\end{axis}
\end{tikzpicture}
\end{document}
Original answer:
You can use a plot
to draw random dots that lie inside the band:

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\draw [-latex, thick] (0, 0) -- (0, 6) node [above] {\Large{$e$}};
\draw [-latex, thick] (0, 3) -- (6, 3) node [right] {\Large{$\widehat{Y}$}};
\draw [thick] (0, 0.5) -- (5, 4);
\draw [thick] (0, 1.75) -- (5, 5.25);
\draw plot [only marks, mark=*, mark size=0.5, domain=0:5, samples=700] (\x,{rnd*1.25+3.5/5*\x+0.5});
\end{tikzpicture}
\end{document}
Best Answer
You can use
line width
to get a satisfactory line width. This is an example for this purpose,and the result is