#==========================================================================
# Copyright (c) 1995-2000 Martien Verbruggen
#--------------------------------------------------------------------------
#
# Name:
# GD::Graph.pm
#
# Description:
# Module to create graphs from a data set drawing on a GD::Image
# object
#
# Package of a number of graph types:
# GD::Graph::bars
# GD::Graph::hbars
# GD::Graph::lines
# GD::Graph::points
# GD::Graph::linespoints
# GD::Graph::area
# GD::Graph::pie
# GD::Graph::mixed
#
# $Id: Graph.pm,v 1.55 2007/04/26 04:12:47 ben Exp $
#
#==========================================================================
#
# GD::Graph
#
# Parent class containing data all graphs have in common.
#
package GD::Graph;
($GD::Graph::prog_version) = '$Revision: 1.55 $' =~ /\s([\d.]+)/;
$GD::Graph::VERSION = '1.44';
use strict;
use GD;
use GD::Text::Align;
use GD::Graph::Data;
use GD::Graph::Error;
use Carp;
@GD::Graph::ISA = qw(GD::Graph::Error);
# Some tools and utils
use GD::Graph::colour qw(:colours);
my %GDsize = (
'x' => 400,
'y' => 300
);
my %Defaults = (
# Set the top, bottom, left and right margin for the chart. These
# margins will be left empty.
t_margin => 0,
b_margin => 0,
l_margin => 0,
r_margin => 0,
# Set the factor with which to resize the logo in the chart (need to
# automatically compute something nice for this, really), set the
# default logo file name, and set the logo position (UR, BR, UL, BL)
logo => undef,
logo_resize => 1.0,
logo_position => 'LR',
# Do we want a transparent background?
transparent => 1,
# Do we want interlacing?
interlaced => 1,
# Set the background colour, the default foreground colour (used
# for axes etc), the textcolour, the colour for labels, the colour
# for numbers on the axes, the colour for accents (extra lines, tick
# marks, etc..)
bgclr => 'white', # background colour
fgclr => 'dblue', # Axes and grid
boxclr => undef, # Fill colour for box axes, default: not used
accentclr => 'gray', # bar, area and pie outlines.
labelclr => 'dblue', # labels on axes
axislabelclr => 'dblue', # values on axes
legendclr => 'dblue', # Text for the legend
textclr => 'dblue', # All text, apart from the following 2
valuesclr => 'dblue', # values printed above the points
# data set colours
dclrs => [qw(lred lgreen lblue lyellow lpurple cyan lorange)],
# number of pixels to use as text spacing
text_space => 4,
# These have undefined values, but are here so that the set method
# knows about them:
title => undef,
=1= |