NAME

Chart::Graph - Perl extension for a front-end to gnuplot, XRT, and Xmgrace.

SYNOPSIS

# EXAMPLE: gnuplot
#make sure to include Chart::Graph
use Chart::Graph:Gnuplot qw(gnuplot);

gnuplot(\%global_options, [\%data_set_options, \@matrix],
                          [\%data_set_options, \@x_column, \@y_column],
                          [\%data_set_options, < filename >], ... );



# EXAMPLE: Xmgrace
#make sure to include Chart::Graph
use Chart::Graph::Xmgrace qw(xmgrace);
xmgrace(\%global_options, [\%data_set_options, \@matrix],
                          [\%data_set_options, \@x_column, \@y_column],
                          [\%data_set_options, < filename >], ... );

# EXAMPLE: xrt2d
#make sure to include Chart::Graph
use Chart::Graph::Xrt2d qw(xrt2d);

xrt2d(\%options, \@data_set);

#say for example we have a 3 by 4 matrix -> dataxy
xrt2d(\%options,
      [[data11, data12, data13, data14],
      [data21, data22, data23, data24],
      [data31, data32, data33, data34]])


# EXAMPLE: xrt3d
#make sure to include Chart::Graph
use Chart::Graph::Xrt3d qw(xrt3d);

xrt3d(\%options, \@data_set);

#say for example we have a 3 by 4 matrix -> dataxy
xrt3d(\%options,
      [[data11, data12, data13, data14],
      [data21, data22, data23, data24],
      [data31, data32, data33, data34]])

DESCRIPTION

use Chart::Graph;

Graph.pm is a wrapper module that allows easy generation of graphs within perl. Currently Graph.pm supports three graphing packages, gnuplot, XRT, and Xmgrace. These software packages must be obtained separately from this Perl module. Information on each graphing package and it's availability is provided in the documentation on that module. Gnuplot and Xmgrace are freely available software pages for UNIX systems. XRT is a commercial product.

Currently the xrt3d and xrt2d package is not being supported, although it works. It is still in the development stage. Feel free to give it a try though.

INSTALLATION

Because Chart-Graph is a wrapper script, you need to install the graphic package that you wish to use before attempting to install Chart-Graph.pm. Unless the appropriate graphics software is installed, the testing portions of the install will fail.

If you want to use the xrt2d/xrt3d package, you need to build the respective "graph" binaries in the xrt2d/xrt3d directories. Refer to the README files in the xrt2d and xrt3d directories for instructions on creating the required binaries.

Chart-Graph.pm use the standard Perl module installation procedure. To install Graph.pm on your system you need to run:

perl Makefile.PL
make
make test
make install

The standard Perl options apply. For example you can specify the location of you Perl Installation by the option: PREFIX=/home/your/private/dir. Which results modifying the first command as follows:

perl Makefile.PL PREFIX=/your/private/dir

Running the Makefile.PL Perl script mades some additional preparation before creating the the Makefile. In particular, the script sets up the testing routines for the various graphics modules.

Enter (space separated) graphing drivers to test: [gnuplot xrt3d xrt2d xmgrace]

Enter the names of the graphical software packages that you have installed. The others will be ignored even if Chart-Graph will appear to "test" them. If you are using Xmgrace or XRT there are additional options you will need to supply. In order to permit Xmgrace to perform its test without using the X server you should provide a path to a X virtual frame buffer.

Enter path to X virtual frame buffer(Xvfb):

Finally, If you are running XRT, you need to provide that path to the XRT binaries:

Enter path to xrt2d binary (built from xrt2d/):

Note that running the tests will create image files that are placed in the directory test_results. These images are almost all identical with the examples provided with the documentation and can be used to check if there are subtile errors in your image creation software.

USAGE

Chart::Graph attempts as much as possible to provide a uniform interface to these different graphics packages. Unfortunately, the functionality of each program is sufficiently different that the interface cannot be entirely uniform.

GENERAL DIAGNOSTICS AND TOOLS

Currently Chart::Graph supports two levels of debug, 0 (no debug msgs) and 1(debug msgs). You need to set the $Chart::Graph::debug flag accordingly. If you are having problems with Graph.pm set the debug flag to 1. Also Graph.pm will check $ENV{TMPDIR} for the temporary file storage. If you do not specify, it will be set to /tmp automatically. Temporary files can also be saved for further debugging purposes by setting $Chart::Graph::save_tmpfiles flag accordingly, 0 (no tmp files saved) or 1 (save tmp files specified in $ENV{TMPDIR) or /tmp by default)

Note: Currently, XRT and Xmgrace use the local x server to draw it's graphics by default. With XRT, if you are having problems with color or speed is an issue, set $Chart::Graph::use_xvbf to 1 to use the virtual x frame buffer. With Xmgrace, you MUST set $Chart::Graph::use_xvbf to 1 if you are not using a local x server.

All the documentation is also provided in HTML with the sample graphic files for Graph.pm are located in the doc directory.

CONTENT SUMMARY

Graph.pm        - top level file of Chart::Graph
Graph/          - sub modules of Chart::Graph
Graph/Xmgrace/  - sub modules of Chart::Graph::Xmgrace
doc/            - documentation in HTML 
xrt2d/          - xrt2d wrapper executable code
xrt3d/          - xrt3d wrapper executable code
test_Graph.pl   - the test script used for debugging

MORE INFO

For more information on gnuplot, please see the gnuplot web page:

http://www.gnuplot.org/

For more information on Xmgrace, please see the Xmgrace web page:

http://plasma-gate.weizmann.ac.il/Grace

For more information on XRT, please contact Sitraka (now Quest):

http://www.quest.com/xrt_pds/

CONTACT

Send email to graph-dev@caida.org is you have problems, questions, or comments. To subscribe to the mailing list send mail to graph-dev-request@caida.org with a body of "subscribe your@email.com"

AUTHOR

CAIDA Perl development team (cpan@caida.org)

SEE ALSO

gnuplot(1).
xmgrace(1).