The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Pie.pm - 3D Piechart

SYNOPSIS

    use Chart::ThreeD::Pie;

    # create a new pie
    my $pie = new Chart::ThreeD::Pie (500, 300, "title");

    # add data
    $pie->add (160, '#FFAA00', 'part 1');
    $pie->add (350, '#00FF66', 'part 2');
    $pie->add (100, '#AA00FF', 'part 3');
    $pie->add (300, '#0000FF', 'part 4');
    $pie->add (300, '#DD00FF', 'part 5');
    $pie->add (300, '#00DDFF', 'part 6');

    # add a percentage after each label part.
    $pie->percents (1);

    # only draw parts greater or equal to 3%. All other parts will be
    # concatenated in to a part called "others" (using red color)
    $pie->limit (2, '#FF0000', 'others');

    # thickness of the pie
    $pie->thickness (30);

    # sort the "parts"
    $pie->want_sort (1);

    # foreground and background colors
    $pie->fgcolor ('#FF0000');
    $pie->bgcolor ('#00FFFF');

    # add a border
    $pie->border (1);

    # make sure we are writing to a binary stream
    binmode STDOUT;

    # Draw the pie, Convert the image to GIF and print it on standard output
    print $pie->plot->gif;

DESCRIPTION

    Chart::ThreeD::Pie allows you to create 3D Piecharts very easily
    and emit the drawings as GIF files. You can customize almost everything
    using a large number of methods.

    This module requires the Lincoln D. Stein's GD module available on CPAN.

Method Calls

Creating Pie

new

Chart::ThreeD::Pie::new(width, height, title) class method

To create a new pie, send a new() message to the Chart::ThreeD::Pie class. For example:

        $pie = new Chart::ThreeD::Pie (450, 320, 'my title');

This will create an image that is 450 x 320 pixels wide. If you don't specify the dimensions, a default of 400 x 300 will be chosen. The default title is an empty string (no title). The three parameters can be changed using the corresponding methods specified bellow.

Commands

thickness

Chart::ThreeD::Pie::thickness(val) object method

This allows you to set the thickness (in pixel) of the pie if val is defined. The current value is returned. Default value is 30 pixels.

Example:

      print "Current thickness is ", $pie->thickness, " pixels\n";
      # set it to 20.
      $pie->thickness(20);
want_sort

Chart::ThreeD::Pie::thickness(bool) object method

This will allow you to sort the parts of the pie if bool is non-null. The current value is returned. Default is null;

Example:

      print "Current want_sort value is ", $pie->want_sort, "\n";
      # set it to true
      $pie->want_sort(1);
transparent

Chart::ThreeD::Pie::transparent(bool) object method

This will allow you to make the background of the final picture transparent if bool is non-null. The current value is returned. Default is null;

Example:

      # Background will be transparent.
      $pie->transparent(1);
interlaced

Chart::ThreeD::Pie::interlaced(bool) object method

This will allow you to make the background of the final picture interlaced if bool is non-null. The current value is returned. Default is null;

Example:

      # Picture will be interlaced
      $pie->interlaced(1);
percents

Chart::ThreeD::Pie::percents(bool) object method

This will add percentages after the label of each part of the pie if bool is non-null. The current value is returned. Default is null;

Example:

      # add percents in labels
      $pie->percents(1);
bgcolor

Chart::ThreeD::Pie::bgcolor(bgcolor) object method

Set the background color if bgcolor is defined. The current value is returned. Default value is '#000000' (black). Color is a string composed of a '#' followed by 3 two-digits hexadecimal values, respectively Red, Green and Blue.

Example:

      # set the background color to yellow
      $pie->bgcolor ('#FFFF00');
fgcolor

Chart::ThreeD::Pie::fgcolor(fgcolor) object method

Set the foreground color if fgcolor is defined. The current value is returned. Default value is '#000000' (black). Color is a string composed of a '#' followed by 3 two-digits hexadecimal values, respectively Red, Green and Blue.

Example:

      # set the foreground color to red
      $pie->fgcolor ('#FF0000');
border

Chart::ThreeD::Pie::border(bool) object method

This will allow you to add a border to the final picture if bool is non-null. The current value is returned. Default is null. The color of the boder is specified by fgcolor.

Example:

      # Want a border
      $pie->border(1);
limit

Chart::ThreeD::Pie::limit(val, color, label) object method

This allows you to set the size (in percent) of the smallest part of the pie that will be drawn. All other parts will be merged into a single part labeled by 'label' and using the color 'color'. If 'val' is null, all parts are drawn. Default values are 7, '#FF0000' and 'others'. Current values are returned.

radius

Chart::ThreeD::Pie::radius(rad) object method

Specify the radius of the pie in pixels if rad is non-null. The current value is returned. The default value is a third of the xmax value given to the creation of the pie (first parameter of the constructor).

Example:

      # set radius to 100.
      $pie->radius(100);
xmax

Chart::ThreeD::Pie::xmax(val) object method

This allows you to set the length (in pixel) of the pie if val is defined. The current value is returned.

Example:

      print "Current length is ", $pie->xmax, " pixels\n";
      # set it to 600.
      $pie->xmax(600);
ymax

Chart::ThreeD::Pie::ymax(val) object method

This allows you to set the width (in pixel) of the pie if val is defined. The current value is returned.

Example:

      print "Current width is ", $pie->ymax, " pixels\n";
      # set it to 500.
      $pie->ymax(500);
title

Chart::ThreeD::Pie::title(val) object method

This allows you to change the title of the pie if val is defined. The current value is returned.

Example:

      print "Current title is '", $pie->title, "'\n";
      # set it to 'my own title'.
      $pie->title('my own title');
add

Chart::ThreeD::Pie::add(val, color, label) object method

This method adds a part to a pie. The size of the part is specified by val. Both color and label are optional. The default color is '#DDDDDD' and the default label is ''.

plot

Chart::ThreeD::Pie::plot() object method

Draw the pie. This method returns a GD object (see GD).

gif

Chart::ThreeD::Pie::gif() object method

This returns the image data in GIF format. You can then print it, pipe it to a display program, or write it to a file. You MUST call the plot() method at least once before calling gif().

Example:

    $pie->plot;
    open (PIPE, "| xv -") || die "Error: $!";
    binmode PIPE;
    print PIPE $pie->gif;
    close PIPE;

SEE ALSO

perl, GD

AUTHOR

Fabien Tassin (fta@oleane.net)

COPYRIGHT

Copyright 1998, 1999, Fabien Tassin. All rights reserved. It may be used and modified freely, but I do request that this copyright notice remain attached to the file. You may modify this module as you wish, but if you redistribute a modified version, please attach a note listing the modifications you have made.