DBD-Chart
view release on metacpan or search on metacpan
purple => [191,0,191],
dpurple => [127,0,127],
lorange => [255,183,0],
orange => [255,127,0],
pink => [255,183,193],
dpink => [255,105,180],
marine => [127,127,255],
cyan => [0,255,255],
lbrown => [210,180,140],
dbrown => [165,42,42],
transparent => [1,1,1]
);
our @dfltcolors = qw( red green blue yellow purple orange
dblue cyan dgreen lbrown );
our %valid_shapes = (
'fillsquare', 1,
'opensquare', 2,
'horizcross', 3,
'diagcross', 4,
if (($prop eq 'BACKGROUND') || ($prop eq 'GRIDCOLOR') ||
($prop eq 'TEXTCOLOR')) {
$t = restore_strings($dbh, $prop, $t, $strlits)
if ($t=~/<\d+>/);
$t = lc $t;
$props{$prop} = $t,
next
if (check_color($t) ||
(($prop eq 'BACKGROUND') && ($t eq 'transparent')));
return ($dbh->DBI::set_err(-1, "Invalid value for $prop property.",'S1000'), $t);
}
if (($prop eq 'COLOR') || ($prop eq 'SHAPE') || ($prop eq 'FONT')) {
my @colors = ();
$props{ $prop } = \@colors;
$t = restore_strings($dbh, $prop, $t, $strlits)
if ($t=~/^<\d+>$/);
Chart/Plot.pm view on Meta::CPAN
purple => [191,0,191],
dpurple => [127,0,127],
lorange => [255,183,0],
orange => [255,127,0],
pink => [255,183,193],
dpink => [255,105,180],
marine => [127,127,255],
cyan => [0,255,255],
lbrown => [210,180,140],
dbrown => [165,42,42],
transparent => [1,1,1]
);
#
# pointshapes
#
our %valid_shapes = (
'fillsquare', 1,
'opensquare', 2,
'horizcross', 3,
'diagcross', 4,
'filldiamond', 5,
Chart/Plot.pm view on Meta::CPAN
$obj->{icons} = [ ]; # array of icon filenames
$obj->{symDomain} = 0; # 1 => use symbolic domain
$obj->{timeDomain} = undef; # defines format of temporal domain labels
$obj->{timeRange} = undef; # defines format of temporal range labels
# allocate some oft used colors
$obj->{white} = $white;
$obj->{black} = $black;
$obj->{transparent} = $img->colorAllocate(@{$colors{'transparent'}});
$obj->{bgColor} = $white; # background color
$obj->{gridColor} = $black;
$obj->{textColor} = $black;
$obj->{border} = 1;
$obj->{mapModifier} = undef;
# for now these aren't used, but someday we'll let them be configured
$obj->{font} = 'gd';
$obj->{_legends} = [ ];
# set image basic properties
$img->transparent($obj->{transparent});
$img->interlaced('true');
# $img->rectangle( 0, 0, $w-1, $h-1, $obj->{black});
}
#
# compare function for numeric sort
#
sub numerically { $a <=> $b }
sub convert_temporal {
Chart/Plot.pm view on Meta::CPAN
1;
}
sub make_marker {
my ($obj, $mtype, $mclr) = @_;
my $brush = new GD::Image(9,9);
my $white = $brush->colorAllocate(255, 255, 255);
my $clr = $brush->colorAllocate(@{$colors{$mclr}});
$brush->transparent($white);
$mtype = $valid_shapes{$mtype};
# square, filled
$brush->filledRectangle(0,0,6,6,$clr),
return $brush
if ($mtype == 1);
# Square, open
$brush->rectangle( 0, 0, 6, 6, $clr ),
return $brush
dbdchart.html view on Meta::CPAN
$sth->execute(1, 2756.34);
$sth->execute(2, 3456.78);
...insert some more rows.....
$sth->execute(12, 90.57);
$rsth = $dbh->prepare(
"SELECT POINTGRAPH FROM line
WHERE WIDTH=500 AND HEIGHT=300 AND X_AXIS='Sales' AND
TITLE = 'Sales By Region' AND COLOR='black' AND SHOWGRID=0 AND
SHAPE='filldiamond' AND SHOWVALUES=1
AND BACKGROUND='transparent'");
$rsth->execute;
$rsth->bind_col(1, \$buf);
$rsth->fetch;
</pre>
<img src="imgs/simppts.png" alt="Scatter Graph">
<p>
<a name="linegraph"></a>
<h3>Multi-range Linegraph, with Logo and Signature</h3>
<pre>
#
dbdchart.html view on Meta::CPAN
<td valign=top align=center><b>THREE_D</b><br>(<i>aka</i> <b>3-D</b>)</td>
<td valign=top>sets the 3-D effect on piecharts, barcharts, and histograms.</td>
<td valign=top>0</td>
<td valign=top>No</td>
<td> </td></tr>
<tr bgcolor=white>
<td valign=top align=center><b>BACKGROUND</b></td>
<td valign=top>sets the background color</td>
<td valign=top>'white'</td>
<td valign=top>Yes</td>
<td valign=top>single string value only, from list of legal colors or <code>transparent</code>.</td></tr>
<tr bgcolor=white>
<td valign=top align=center><b>TEXTCOLOR</b></td>
<td valign=top>sets the color of text in the image.</td>
<td valign=top>'black'</td>
<td valign=top>No</td>
<td valign=top>Single string value from the list of valid colors.</td></tr>
<tr bgcolor=white>
<td valign=top align=center><b>LOGO</b></td>
<td valign=top>sets a background image; default none, single value only. Accepts a filename
(optionally including path info) of an image file of either PNG, JPEG, or GIF format.
dbdchart.html view on Meta::CPAN
<tr bgcolor=white><td align=center>purple</td><td>191</td><td>0</td><td>191</td></tr>
<tr bgcolor=white><td align=center>dpurple</td><td>127</td><td>0</td><td>127</td></tr>
<tr bgcolor=white><td align=center>lorange</td><td>255</td><td>183</td><td>0</td></tr>
<tr bgcolor=white><td align=center>orange</td><td>255</td><td>127</td><td>0</td></tr>
<tr bgcolor=white><td align=center>pink</td><td>255</td><td>183</td><td>193</td></tr>
<tr bgcolor=white><td align=center>dpink</td><td>255</td><td>105</td><td>180</td></tr>
<tr bgcolor=white><td align=center>marine</td><td>127</td><td>127</td><td>255</td></tr>
<tr bgcolor=white><td align=center>cyan</td><td>0</td><td>255</td><td>255</td></tr>
<tr bgcolor=white><td align=center>lbrown</td><td>210</td><td>180</td><td>140</td></tr>
<tr bgcolor=white><td align=center>dbrown</td><td>165</td><td>42</td><td>42</td></tr>
<tr bgcolor=white><td align=center>transparent</td><td>1</td><td>1</td><td>1</td></tr>
</table><p>
For example, to define a new color:
<pre>
$dbh->do('INSERT INTO COLORMAP VALUES('chartreuse', 230, 179, 180);
</pre>
To modify an existing color:
<pre>
$dbh->do("UPDATE COLORMAP SET REDVALUE=100 WHERE NAME='marine'");
</pre>
To fetch the current values of an existing color:
dbdchart.html view on Meta::CPAN
Release 0.40:<p>
<ul>
<li>fix for DECIMAL, INTEGER, etc. last columns in CREATE TABLE</li>
<li>fix for FORMAT property to properly handle as string value</li>
<li>added Y-MAX, Y-MIN properties to control Y-axis min/max values for barcharts</li>
</ul>
Release 0.30:<p>
<ul>
<li>strip newlines from SQL for prepare()
<li>add BACKGROUND property to set background color, incl. transparent background
<li>add FORMAT property to select PNG or JPEG
<li>add X-ORIENT property to set X-tick label orientation
<li>add LOGO property to set a background image
<li>add SIGNATURE property to set a signature string in image
<li>add placeholder support in SELECT WHERE clause
<li>add KEEPORIGIN property to force (0,0) in the graph
<li>auto-skip symbolic X-axis vertical tick labels when they overlap
<li>add parameterized chart datasource (i.e., SELECT BARCHART FROM ? WHERE...)
</ul><p>
examples/graphtst.pl view on Meta::CPAN
binmode OUTF;
print OUTF $buf;
close(OUTF);
print "simpline.png OK\n";
#
# simple point graph
#
$rsth = $dbh->prepare('SELECT POINTGRAPH FROM line ' .
'WHERE WIDTH=500 AND HEIGHT=300 AND Y-AXIS=\'Sales\' AND X-AXIS=\'Month\' AND ' .
'TITLE = \'Sales By Region\' AND COLOR=black AND SHOWGRID=0 AND ' .
'X-ORIENT=\'VERTICAL\' AND SHAPE=filldiamond AND SHOWVALUES=1 AND BACKGROUND=transparent');
$rsth->execute;
$rsth->bind_col(1, \$buf);
$rsth->fetch;
open(OUTF, '>simppts.png');
binmode OUTF;
print OUTF $buf;
close(OUTF);
print "simppts.png OK\n";
#
( run in 0.643 second using v1.01-cache-2.11-cpan-0a6323c29d9 )