The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Apache::GD::Graph - Generate Charts in an Apache handler.

SYNOPSIS

In httpd.conf:

        PerlModule Apache::GD::Graph

        <Location /chart>
        SetHandler perl-script
        PerlHandler Apache::GD::Graph
        </Location>

Then send requests to:

http://www.server.com/chart?type=lines&x_labels=[1st,2nd,3rd,4th,5th]&data1=[1,2,3,4,5]&data2=[6,7,8,9,10]&dclrs=[blue,yellow,green]

DESCRIPTION

This is a simple Apache mod_perl handler that generates and returns a png format graph based on the arguments passed in via a query string. It responds with the content-type "image/png" directly, and sends a Expires: header of 30 days ahead (since the same query string generates the same graph, they can be cached). In addition, it keeps a server-side cache under /var/cache/Apache::GD::Graph .

OPTIONS

type

Type of graph to generate, can be lines, bars, points, linespoints, area, mixed, pie. For a description of these, see GD::Graph(3). Can also be one of the 3d types if GD::Graph3d is installed, or anything else with prefix GD::Graph::.

width

Width of graph in pixels, 400 by default.

height

Height of graph in pixels, 300 by default.

For the following, look at the plot method in GD::Graph(3).

x_labels

Labels used on the X axis, the first array given to the plot method of GD::Graph.

dataN

Values to plot, where N is a number starting with 1. Can be given any number of times with N increasing.

ALL OTHER OPTIONS are passed as a hash to the GD::Graph set method using the following rules for the values:

undef

Becomes a real undef.

[one,two,3]

Becomes an array reference.

{one,1,two,2}

Becomes a hash reference.

http://somewhere/file.png

Is pulled into a file and the file name is passed to the respective option. (Can be any scheme besides http:// that LWP::Simple supports.)

AUTHOR

Rafael Kitover (caelum@debian.org)

COPYRIGHT

This program is Copyright (c) 2000 by Rafael Kitover. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

BUGS

Probably a few.

TODO

Configuration of cache dirs, value of the expires header and other options via PerlSetEnv directives in httpd.conf.

Perhaps using mod_proxy for caching entirely, or improving this scheme to be more intelligent.

Let me know.

SEE ALSO

perl(1), GD::Graph(3), GD(3),