Graphical displays of data are essential to data analysis. IFEFFIT uses PGPLOT, a simple graphics library that is fairly well-supported and portable, and can be accessed from fortran, C, and a variety of scripting languages. PGPLOT supports many graphics devices (terminals, graphics files, hardcopies), and works well on Unix, MacOS X using X Windows, and Windows systems. Much of the information in this chapter is adapted from the PGPLOT documentation. That documentation is aimed at the programmer and not the end user, but the concepts discussed are fairly simple. If you have a question about IFEFFIT graphics, you may wish to consult the PGPLOT documentation, which can be found at http://www.astro.caltech.edu/ tjp/pgplot/.
Plotting in IFEFFIT is encapsulated in the commands plot(), newplot(), cursor(), zoom(), color(), plot_text(), plot_marker(), and plot_arrow(). These commands make respectable looking plots on screen and paper, and provide good flexibility for graphical data analysis. These routines allow different colors and linestyles for each trace on the plot, They allow other symbols, text strings, and arrows anywhere on the plot window, and allow a 'legend' of plotted trace to be easily and automatically built. They also allow you to use the cursor to get x-y positions of particular points on the plot window and to zoom in on particular areas of the plot window.
The hardcopies made by PGPLOT are of reasonable quality, but may not satisfy your criteria of publication quality. Since there are many programs designed especially for these purposes, and since IFEFFIT is intended to be an XAFS analysis program, not a high-quality graphics program or a data visualization tool, the quality of the resulting graphics seems acceptable.
The plot() command is the main plotting command in IFEFFIT, making a two-dimensional line-plot or scatter-plot given x and y arrays. There are many optional arguments, most of which will be discussed in this chapter. A complete list is given in section 9.27. The newplot() command is a minor variation on plot(), that will always erase the current plot before plotting. The rest of this chapter will discuss the details of the various plotting options available in IFEFFIT.