\chapter{Graphs and plots}
\label{chap-graphs}

\section{Gnuplot graphs}
\label{gnuplot-graphs}

A separate program, \app{gnuplot}, is called to generate graphs.
Gnuplot is a very full-featured graphing program with myriad options.
It is available from \href{http://www.gnuplot.info/}{www.gnuplot.info}
(but note that a copy of gnuplot is bundled with the MS Windows
version of \app{gretl}).  \app{gretl} gives you direct access, via a
graphical interface, to a subset of gnuplot's options and it tries to
choose sensible values for you; it also allows you to take complete
control over graph details if you wish.

With a graph displayed, you can click on the graph window for a pop-up
menu with the following options.

\begin{itemize}
\item \textsf{Save as PNG}: Save the graph in Portable Network
  Graphics format.
\item \textsf{Save as postscript}: Save in encapsulated postscript
  (EPS) format.
\item \textsf{Save as Windows metafile}: Save in Enhanced Metafile
  (EMF) format.
\item \textsf{Save to session as icon}: The graph will appear in
  iconic form when you select ``Icon view'' from the View menu.
\item \textsf{Zoom}: Lets you select an area within the graph for
  closer inspection (not available for all graphs).
\item \textsf{Print}: (Gnome desktop or MS Windows only) lets you
  print the graph directly.
\item \textsf{Copy to clipboard}: MS Windows only, lets you paste the
  graph into Windows applications such as MS Word.\footnote{For best
    results when pasting graphs into MS Office applications, choose
    the application's ``Edit, Paste Special...'' menu item, and select
    the option ``Picture (Enhanced Metafile)''.}
\item \textsf{Edit}: Opens a controller for the plot which lets you
  adjust various aspects of its appearance.
\item \textsf{Close}: Closes the graph window.
\end{itemize}


\subsection{Displaying data labels}
\label{plot-labels}

In the case of a simple X-Y scatterplot (with or without a line of
best fit displayed), some further options are available if the dataset
includes ``case markers'' (that is, labels identifying each
observation).\footnote{For an example of such a dataset, see the
  Ramanathan file \verb+data4-10+: this contains data on private
  school enrollment for the 50 states of the USA plus Washington, DC;
  the case markers are the two-letter codes for the states.} With a
scatter plot displayed, when you move the mouse pointer over a data
point its label is shown on the graph.  By default these labels are
transient: they do not appear in the printed or copied version of the
graph.  They can be removed by selecting ``Clear data labels'' from
the graph pop-up menu. If you want the labels to be affixed
permanently (so they will show up when the graph is printed or
copied), you have two options.
    
\begin{itemize}
\item To affix the labels currently shown on the graph, select
  ``Freeze data labels'' from the graph pop-up menu.
\item To affix labels for all points in the graph, select ``Edit''
  from the graph pop-up and check the box titled ``Show all data
  labels''.  This option is available only if there are less than 55
  data points, and it is unlikely to produce good results if the
  points are tightly clustered since the labels will tend to overlap.
\end{itemize}

To remove labels that have been affixed in either of these ways,
select ``Edit'' from the graph pop-up and uncheck ``Show all data
labels''.
    

\subsection{Advanced options}
\label{plot-advanced}

If you know something about \app{gnuplot} and wish to get finer
control over the appearance of a graph than is available via the
graphical controller (``Edit'' option), here's what to do.  In the
graph display window, right-click and choose ``Save to session as
icon''.  Then open the icon view window --- either via the menu item
View/Icon view, or by clicking the ``session icon view'' button on the
main-window toolbar.  You should see an icon representing your graph.
Right-click on that and select ``Edit plot commands'' from the pop-up
menu.  This opens an editing window with the actual gnuplot commands
displayed. You can edit these commands and either save them for future
processing or send them to gnuplot, using the Execute (cogwheel)
button on the toolbar in the plot commands editing window.

To find out more about \app{gnuplot} visit
\href{http://www.gnuplot.info/}{www.gnuplot.info}. This site has
documentation for the current version of the program in various
formats.  

See also the entry for \cmd{gnuplot} in the \GCR\ --- and the
\cmd{graph} and \cmd{plot} commands for ``quick and dirty'' ASCII
graphs.

\begin{figure}[htbp]
  \begin{center}
    \includegraphics[scale=0.5]{figures/plot_control}
  \end{center}
  \caption{gretl's gnuplot controller}
  \label{fig-plot}
\end{figure}


\section{Boxplots}
\label{sect-boxplots}

Boxplots are not generated using gnuplot, but rather by \app{gretl}
itself.

These plots (after Tukey and Chambers) display the distribution
of a variable. The central box encloses the middle 50 percent of the
data, i.e.\ it is bounded by the first and third quartiles.  The
``whiskers'' extend to the minimum and maximum values.  A line is
drawn across the box at the median and a ``\texttt{+}'' sign
identifies the mean.

In the case of notched boxes, the notch shows the limits of an
approximate 90 percent confidence interval for the median.  This is
obtained by the bootstrap method, which can take a while if the data
series is very long.

Clicking the mouse in the boxplots window brings up a menu which
enables you to save the plots as encapsulated postscript (EPS) or as a
full-page postscript file.  Under the X window system you can also
save the window as an XPM file; under MS Windows you can copy it to
the clipboard as a bitmap.  The menu also gives you the option of
opening a summary window which displays six-number summaries (mean,
minimum, first quartile, median, third quartile, maximum), plus a
confidence interval for the median if the ``notched'' option was
chosen.

Some details of gretl's boxplots can be controlled via a (plain text)
file named \verb+.boxplotrc+ (or alternatively \verb+plotconfig.txt+)
which is looked for, in turn, in the current working directory, the
user's home directory (corresponding to the environment variable HOME)
and the gretl user directory (which is displayed and may be changed
under the ``Tools, Preferences, General'' menu).  Options that can be
set in this way are the font to use when producing postscript output
(must be a valid generic postscript font name; the default is
Helvetica), the size of the font in points (also for postscript
output; default is 12), the minimum and maximum for the y-axis range,
the width and height of the plot in pixels (default, 560 $\times$ 448),
whether numerical values should be printed for the quartiles and
median (default, don't print them), and whether outliers (points lying
beyond 1.5 times the interquartile range from the central box) should
be indicated separately (default, no).  Here is an example:

\begin{code}
font = Times-Roman
fontsize = 16
max = 4.0
min = 0
width = 400
height = 448
numbers = %3.2f
outliers = true
\end{code}

On the second to last line, the value associated with \verb+numbers+
is a format string as in the \texttt{printf} command (see the \GCR);
if specified, this controls the printing of the median and quartiles
next to the boxplot, if no \verb+numbers+ entry is given these values
are not printed.  In the example, the values will be printed to a
width of 3 digits, with 2 digits of precision following the decimal
point.

Not all of the options need be specified, and the order doesn't
matter.  Lines not matching the pattern ``key = value'' are ignored,
as are lines that begin with the hash mark, \verb+#+.

After each variable specified in the boxplot command, a parenthesized
boolean expression may be added, to limit the sample for the variable
in question.  A space must be inserted between the variable name or
number and the expression.  Suppose you have salary figures for men
and women, and you have a dummy variable \verb+GENDER+ with value 1
for men and 0 for women.  In that case you could draw comparative
boxplots with the following line in the boxplots dialog:

\begin{code}
salary (GENDER=1) salary (GENDER=0)
\end{code}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "gretl-guide"
%%% End: 

