Like this?
\documentclass{article}
\usepackage{geometry}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows}
\begin{document}
\begin{minipage}{.5\textwidth}
\begin{tikzpicture}[font=\scriptsize ]
\draw[->] (-.5,0)--(6,0) node[below] {$x$};
\draw[->] (0,-.5)--(0,3.5) node[left] {$y$};
\draw [red,<->,thick] plot [smooth,tension=.7,samples=200] coordinates {
(.5,1) (1.25,.5) (2.75,1) (4.5,2.5) (6,1.75) };
\filldraw[black] (1.25,.5) circle (2pt) coordinate (start);
\filldraw[black] (4.5,2.5) circle (2pt) coordinate (end);
\path (start) -- (end) node[midway,above,draw=red,single arrow,fill=red!20,sloped]{increasing};
\draw (1.25,0) node[below] {$a$} -- (1.25,.5) -- (0,0.5) node
[left] {$f(a)$};
\draw (4.5,0) node[below] {$b$} -- (4.5,2.5) -- (0,2.5) node
[left] {$f(b)$};
\node at (2.75,-1) [align=left] {If the input $a$ is less than
the input $b$,\\ then the output for $a$ is less than the\\
output for $b$.};
\end{tikzpicture}
\end{minipage}
\begin{minipage}{.5\textwidth}
\begin{tikzpicture}[font=\scriptsize]
\draw[->] (-.5,0)--(6,0) node[below] {$x$};
\draw[->] (0,-.5)--(0,3.5) node[left] {$y$};
\draw [blue,<->,thick] plot [smooth,tension=.7,samples=200] coordinates {
(.5,2.5) (1.25,2.6) (2.75,1) (4.5,.5) (6,1.25) };
\filldraw[black] (1.25,2.6) circle (2pt) coordinate (start);
\filldraw[black] (4.5,.5) circle (2pt) coordinate (end);
\path (start) -- (end) node[midway,above,draw=blue,single
arrow,fill=blue!20,sloped]{decreasing};
\draw (1.25,0) node[below] {$a$} -- (1.25,2.6) -- (0,2.6) node
[left] {$f(a)$};
\draw (4.5,0) node[below] {$b$} -- (4.5,.5) -- (0,.5) node
[left] {$f(b)$};
\node at (2.75,-1) [align=left] {If the input $a$ is less than
the input $b$,\\ then the output for $a$ is greater than the\\
output for $b$.};
\end{tikzpicture}
\end{minipage}
\end{document}

You could also have the arrow below, of course.
\documentclass{article}
\usepackage{geometry}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows}
\begin{document}
\begin{minipage}{.5\textwidth}
\begin{tikzpicture}[font=\scriptsize ]
\draw[->] (-.5,0)--(6,0) node[below] {$x$};
\draw[->] (0,-.5)--(0,3.5) node[left] {$y$};
\draw [red,<->,thick] plot [smooth,tension=.7,samples=200] coordinates {
(.5,1) (1.25,.5) (2.75,1) (4.5,2.5) (6,1.75) };
\filldraw[black] (1.25,.5) circle (2pt) coordinate (start);
\filldraw[black] (4.5,2.5) circle (2pt) coordinate (end);
\path (start) -- (end) node[midway,below=14pt,draw=red,single arrow,fill=red!20,sloped]{increasing};
\draw (1.25,0) node[below] {$a$} -- (1.25,.5) -- (0,0.5) node
[left] {$f(a)$};
\draw (4.5,0) node[below] {$b$} -- (4.5,2.5) -- (0,2.5) node
[left] {$f(b)$};
\node at (2.75,-1) [align=left] {If the input $a$ is less than
the input $b$,\\ then the output for $a$ is less than the\\
output for $b$.};
\end{tikzpicture}
\end{minipage}
\begin{minipage}{.5\textwidth}
\begin{tikzpicture}[font=\scriptsize]
\draw[->] (-.5,0)--(6,0) node[below] {$x$};
\draw[->] (0,-.5)--(0,3.5) node[left] {$y$};
\draw [blue,<->,thick] plot [smooth,tension=.7,samples=200] coordinates {
(.5,2.5) (1.25,2.6) (2.75,1) (4.5,.5) (6,1.25) };
\filldraw[black] (1.25,2.6) circle (2pt) coordinate (start);
\filldraw[black] (4.5,.5) circle (2pt) coordinate (end);
\path (start) -- (end) node[midway,above,draw=blue,single
arrow,fill=blue!20,sloped]{decreasing};
\draw (1.25,0) node[below] {$a$} -- (1.25,2.6) -- (0,2.6) node
[left] {$f(a)$};
\draw (4.5,0) node[below] {$b$} -- (4.5,.5) -- (0,.5) node
[left] {$f(b)$};
\node at (2.75,-1) [align=left] {If the input $a$ is less than
the input $b$,\\ then the output for $a$ is greater than the\\
output for $b$.};
\end{tikzpicture}
\end{minipage}
\end{document}

Another possibility is to use decorations.markings for that, as detailed on p. 587 of the pgfmanual.
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{shapes.arrows,decorations.markings}
\begin{document}
\foreach \X in {0.2,0.225,...,0.8}
{\begin{tikzpicture}[font=\scriptsize ]
\draw[->] (-.5,0)--(6,0) node[below] {$x$};
\draw[->] (0,-.5)--(0,3.5) node[left] {$y$};
\draw [red,<->,thick,postaction=decorate,decoration={markings,
mark=at position {\X} with {\path (-1,0.2) --
node[midway,below=14pt,draw=red,single arrow,fill=red!20,sloped,transform shape]{increasing}
(1,0.2);
}}] plot [smooth,tension=.7,samples=200] coordinates {
(.5,1) (1.25,.5) (2.75,1) (4.5,2.5) (6,1.75) };
\filldraw[black] (1.25,.5) circle (2pt) coordinate (start);
\filldraw[black] (4.5,2.5) circle (2pt) coordinate (end);
\draw (1.25,0) node[below] {$a$} -- (1.25,.5) -- (0,0.5) node
[left] {$f(a)$};
\draw (4.5,0) node[below] {$b$} -- (4.5,2.5) -- (0,2.5) node
[left] {$f(b)$};
\node at (2.75,-1) [align=left] {If the input $a$ is less than
the input $b$,\\ then the output for $a$ is less than the\\
output for $b$.};
\begin{scope}[xshift=8cm]
\draw[->] (-.5,0)--(6,0) node[below] {$x$};
\draw[->] (0,-.5)--(0,3.5) node[left] {$y$};
\draw [blue,<->,thick,postaction=decorate,decoration={markings,
mark=at position {\X} with {\path (-1,1) --
node[midway,below,draw=blue,single
arrow,fill=blue!20,sloped,transform shape]{decreasing} (1,1);
}}] plot [smooth,tension=.7,samples=200] coordinates {
(.5,2.5) (1.25,2.6) (2.75,1) (4.5,.5) (6,1.25) };
\filldraw[black] (1.25,2.6) circle (2pt) coordinate (start);
\filldraw[black] (4.5,.5) circle (2pt) coordinate (end);
\draw (1.25,0) node[below] {$a$} -- (1.25,2.6) -- (0,2.6) node
[left] {$f(a)$};
\draw (4.5,0) node[below] {$b$} -- (4.5,.5) -- (0,.5) node
[left] {$f(b)$};
\node at (2.75,-1) [align=left] {If the input $a$ is less than
the input $b$,\\ then the output for $a$ is greater than the\\
output for $b$.};
\end{scope}
\end{tikzpicture}}
\end{document}

As for the inline animation: I have not much experience with that, but I just used this great answer and it immediately worked. Wish all answers were that clear! (Use acroread to view it.)
\documentclass{article}
\usepackage{animate}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows,decorations.markings}
\begin{document}
\begin{animateinline}[controls,autoplay,loop]{2}
\multiframe{16}{n=1+1}{\begin{tikzpicture}[font=\scriptsize]
\pgfmathsetmacro{\X}{0.175+0.025*\n}
\draw[->] (-.5,0)--(6,0) node[below] {$x$};
\draw[->] (0,-.5)--(0,3.5) node[left] {$y$};
\draw [red,<->,thick,postaction=decorate,decoration={markings,
mark=at position {\X} with {\path (-1,0.2) --
node[midway,below=14pt,draw=red,single arrow,fill=red!20,sloped,transform shape]{increasing}
(1,0.2);
}}] plot [smooth,tension=.7,samples=200] coordinates {
(.5,1) (1.25,.5) (2.75,1) (4.5,2.5) (6,1.75) };
\filldraw[black] (1.25,.5) circle (2pt) coordinate (start);
\filldraw[black] (4.5,2.5) circle (2pt) coordinate (end);
\draw (1.25,0) node[below] {$a$} -- (1.25,.5) -- (0,0.5) node
[left] {$f(a)$};
\draw (4.5,0) node[below] {$b$} -- (4.5,2.5) -- (0,2.5) node
[left] {$f(b)$};
\node at (2.75,-1) [align=left] {If the input $a$ is less than
the input $b$,\\ then the output for $a$ is less than the\\
output for $b$.};
\begin{scope}[xshift=8cm]
\draw[->] (-.5,0)--(6,0) node[below] {$x$};
\draw[->] (0,-.5)--(0,3.5) node[left] {$y$};
\draw [blue,<->,thick,postaction=decorate,decoration={markings,
mark=at position {\X} with {\path (-1,1) --
node[midway,below,draw=blue,single
arrow,fill=blue!20,sloped,transform shape]{decreasing} (1,1);
}}] plot [smooth,tension=.7,samples=200] coordinates {
(.5,2.5) (1.25,2.6) (2.75,1) (4.5,.5) (6,1.25) };
\filldraw[black] (1.25,2.6) circle (2pt) coordinate (start);
\filldraw[black] (4.5,.5) circle (2pt) coordinate (end);
\draw (1.25,0) node[below] {$a$} -- (1.25,2.6) -- (0,2.6) node
[left] {$f(a)$};
\draw (4.5,0) node[below] {$b$} -- (4.5,.5) -- (0,.5) node
[left] {$f(b)$};
\node at (2.75,-1) [align=left] {If the input $a$ is less than
the input $b$,\\ then the output for $a$ is greater than the\\
output for $b$.};
\end{scope}
\end{tikzpicture}}
\end{animateinline}
\end{document}