\section{Graphing functions}
\label{sec:graphing}

Among the most common types of figures for \TeX{} users are those which
are the graphs of functions of a single variable.  Hobby recognized this
and constructed a package to accomplish this task.  It is invoked by

\begin{lstlisting}[style=MP]
input graph;
\end{lstlisting}

\MP{} has the ability to construct data (i.e., ordered pairs) for
graphing simple functions.  However, for more complicated functions, the
data should probably be constructed using external programs such as
\acro{MATLAB} (or Octave), Maple, Mathematica, Gnuplot, et. al.

A typical data file, say \File{data.d}, to be used with the \File{graph}
package may have contents

\vspace{8pt}
\noindent%
\begin{tabular}[b]{@{\hspace{48pt}}l@{}}
  \lstinputlisting[style=text, boxpos=b]{data.d}
\end{tabular}%
\qquad%
\attach[subject={Graph data}]{data.d}
\vspace{8pt}

This data represents the graph of $f(x)=\sqrt{x}$ for six equally spaced
points in $[0,1]$.  To graph this data, the size of the graph must first
be decided.  Choosing a width of $144\mathrm{\ bp}$ and a height of
$89\mathrm{\ bp}$, a minimally controlled plot (as in
\autoref{fig:data}) of this data can be generated by

\begin{lstlisting}[style=MP]
draw begingraph(144bp,89bp);
   gdraw "data.d";
endgraph;
\end{lstlisting}

The \File{graph} package provides many commands used to customize
generated graphs, and these commands are fully documented in the
manual~\cite{hobby:graph} for the \File{graph} package.

\begin{figure}
  \begin{withattachment}{data.mp}
    \centering
    \includegraphics{data.mps}
  \end{withattachment}
  \caption{$f(x)=\sqrt{x}$ using the \texttt{graph} package}
  \label{fig:data}
\end{figure}
