* Edit * Added dashed patterns, legend and a couple of labels;
also an array mn[] of (m,n) pairs
is used to create a function N1(m,n)(x)
instead of the array of functions.

% f.tex:
%
\documentclass{article}
\usepackage[inline]{asymptote}
\usepackage{lmodern}
\begin{document}
\begin{figure}
\centering
\begin{asy}[width=8cm]
size(9cm);
import graph;
import fontsize;
defaultpen(fontsize(9pt));
pen dashed=linetype(new real[] {4,4});
pen longdashed=linetype(new real[] {12,4});
pen dotted=linetype(new real[] {0,3});
pen[] fpen={
gray+longdashed,
black+dotted,
black+dashed
};
real y(real x,real m,real n){
return abs(1-(1-((x+1)/2)^2)^m)^n;
}
typedef real Func(real);
Func N1(real m,real n){
return
new real(real x){
return (-y(0,m,n)+(y(0,m,n)-1)*x+y(x,m,n))/(1-2y(0,m,n));
};
}
pair[] mn={(0.2,0.5),(1,5), (1,10)};
real xmin=-1, xmax=1;
xaxis(xmin,xmax,LeftTicks(Label(LeftSide),Step=0.5,step=0.1,OmitTick(0)));
yaxis(RightTicks(Step=0.5,step=0.1,OmitTick(0)));
real penwidth=1bp;
real m,n;
for(int i=0;i<mn.length;++i){
m=mn[i].x; n=mn[i].y;
draw(graph(N1(m,n),xmin,xmax,n=400),fpen[i]+penwidth
,legend="$N_1("+string(m)+","+string(n)+")$"
);
}
label("$x$",1.1*(xmax,0),S); // 1.1*(xmax,0) is a location,
// alignment S == (0,-1) means "South"
m=mn[2].x; n=mn[2].y;
label("$("+string(m)+","+string(n)+")$",
(0.6,N1(m,n)(0.6))
,SW
);
add(
legend(linelength=0.5legendlinelength,nullpen) // here nullpen means no frame
,point(NE),SW,UnFill
);
\end{asy}
\caption{Family of functions $N_1(x,m,n)$}
\end{figure}
\end{document}
Process it as follows:
pdflatex f.tex
asy f-*.asy
pdflatex f.tex
* ======== first version ======== *

Plotting of such families of functions is straightforward
with the Asymptote (which is part of the TeXLive distribution for quite a while).
Inside the asy environment, the function N1(m,n) uses parameters m and 'n'
to create a new real-valued function which takes one real argument.
All functions that have to be plotted are collected in array f[]
and then plotted inside a loop, using a prepared array of pens fpen[].
% f.tex:
%
\documentclass{article}
\usepackage[inline]{asymptote}
\usepackage{lmodern}
\begin{document}
\begin{figure}
\centering
\begin{asy}[width=7cm]
import graph;
import fontsize;
defaultpen(fontsize(9pt));
pen dashed=linetype(new real[] {4,4});
pen[] fpen={
deepblue+dashed,
black,
orange
};
real y(real x,real m,real n){
return abs(1-(1-((x+1)/2)^2)^m)^n;
}
typedef real Func(real);
Func N1(real m,real n){
return
new real(real x){
return (-y(0,m,n)+(y(0,m,n)-1)*x+y(x,m,n))/(1-2y(0,m,n));
};
}
Func[] f={ N1(0.2,0.5), N1(1,5), N1(1,10) };
real xmin=-1, xmax=1;
xaxis(xmin,xmax,LeftTicks(Label(LeftSide),Step=0.5,step=0.1,OmitTick(0)));
yaxis(RightTicks(Step=0.5,step=0.1,OmitTick(0)));
real penwidth=1bp;
for(int i=0;i<f.length;++i){
draw(graph(f[i],xmin,xmax),fpen[i]+penwidth);
}
\end{asy}
\caption{Family of functions $N_1(x,m,n)$}
\end{figure}
\end{document}
Process it as follows:
pdflatex f.tex
asy f-*.asy
pdflatex f.tex
P.S. I hope you don't count the step asy f-*.asy as too much of extra work.
pgfplotspackage. – Martin Heller Jul 28 '14 at 22:11