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.