NAME
DBIx::Chart - DBI extension for Rendering Charts and Graphs
SYNOPSIS
use DBIx::Chart;
use DBI qw(:sql_types);
#
# some data to plot
#
my @data = (
[ 10, 23, 102 ],
[ 20, 94, 222 ],
[ 30, 44, 40 ],
[ 40, 64, 38 ],
[ 50, 90, 67 ]
);
#
# type info for DBD::Chart; this is
# ONLY NEEDED FOR DBI DRIVERS WHICH DO NOT RETURN
# NAME OR TYPE INFORMATION!!!!
#
my $typemap = [
{
NAME => qw[ X1 Y1 Y2 ],
TYPE => [ SQL_INTEGER, SQL_INTEGER, SQL_INTEGER ],
PRECISION => [ 0, 0, 0 ],
SCALE => [0, 0, 0]
}
];
#
# connect as usual
#
$dbh = DBIx::Chart->connect('dbi:CSV:');
#
# populate the CSV
#
$dbh->do('DROP TABLE dbixtst');
$dbh->do('CREATE TABLE dbixtst (
x INTEGER, y1 integer, y2 integer)')
or die $dbh->errstr();
$sth = $dbh->prepare('insert into dbixtst values(?,?,?)');
$sth->execute(@{$_})
foreach (@data);
#
# now render the graph
#
$row = $dbh->selectrow_arrayref(
"select * from
(select * from dbixtst
returning areagraph(x,y1,y2)
where colors in ('red','blue')) plot1,
(select * from dbixtst
returning linegraph(x,y1,y2)
where colors in ('black', 'yellow')
and linewidth=3
and shapes in ('fillsquare', 'opencircle')) plot2
returning image, imagemap
where width=400 and height=400
and title='sample areagraph'
and signature='(C) 2002 GOWI Inc.'
and mapurl='http://www.goiwsys.com/cgi-bin/sample.pl?x=:X&y1=:Y'
and mapname='comparea'
and keeporigin=1
and showgrid=0");
#
# and save it
#
open(OUTF, '>comparea.png');
binmode OUTF;
print OUTF $$row[0];
close OUTF;
$dbh->disconnect;
WARNING
THIS IS ALPHA SOFTWARE.
DESCRIPTION
The DBIx::Chart extends SQL syntax to provide directives for generating chart images. By subclassing DBI, it makes every SQL capable data source with a DBI driver appear to natively support charting/graphing.
DBIx::Chart builds on the SQL syntax introduced in DBD::Chart to render pie charts, bar charts, box&whisker charts (aka boxcharts), histograms, Gantt charts, and line, point, and area graphs.
For detailed usage information, see the included dbixchart.html webpage. Also refer to DBD::Chart homepage at www.presicient.com/dbdchart. See DBI(3) for details on DBI.
Prerequisites
- Perl 5.6.0 minimum
- DBI 1.28 minimum
- DBD::Chart 0.80
- GD 1.19 minimum
- GD::Text 0.80 minimum
- DBD::CSV (for t/plottest.t)
- Time::HiRes
- libpng
- zlib
- libgd
- jpeg-6b (only if JPEG output required)
Installation
For Windows users, use WinZip or similar to unpack the file, then copy Chart.pm to wherever your site-specific modules are kept (usually \Perl\site\lib\DBIx for ActiveState Perl installations). Note that you won't be able to execute the install test with this, but you need a copy of 'nmake' and all its libraries to run that anyway. I may whip up a PPM in the future.
For Unix, extract it with
gzip -cd DBIx-Chart-0.01.tar.gz | tar xf -
and then enter the following:
cd DBIx-Chart-0.01
perl Makefile.PL
make
You can test the installation by running
make test
this will render a bunch of charts and an HTML page to view them with. NOTE that the test requires the DBD::CSV driver, which is usually bundled with the standard DBI installation. Assuming the test completes successfully, you should use a web browser to view the file t/plottest.html and verify the images look reasonable.
If tests succeed, proceed with installation via
make install
Note that you probably need root or administrator permissions. If you don't have them, read the ExtUtils::MakeMaker man page for details on installing in your own directories. ExtUtils::MakeMaker.
FOR MORE INFO
Check out http://www.presicient.com/dbixchart with your favorite browser. It includes all the usage information.
AUTHOR AND COPYRIGHT
This module is Copyright (C) 2001, 2002 by Presicient Corporation
Email: darnold@presicient.com
You may distribute this module under the terms of the Artistic License, as specified in the Perl README file.
SEE ALSO
For help on the use of DBIx::Chart, see the DBI users mailing list:
dbi-users-subscribe@perl.org
For general information on DBI see
http://dbi.perl.org