GD-Graph-splined

 view release on metacpan or  search on metacpan

lib/GD/Graph/splined.pm  view on Meta::CPAN

                $x, $y];
        }
        else {
            $self->{_hotspots}->[$ds]->[$i] = ["poly",
                $poly->getPt($i),
                @{$bottom[$i]},
                @{$bottom[$i-1]},
                $poly->getPt($i-1),
                $poly->getPt($i)];
        }
    }

	my $spline = $poly->addControlPoints->toSpline;
	$self->{graph}->polydraw($spline,$dsci);

    # Draw the accent lines
    if (defined $brci and
       ($self->{right} - $self->{left})/@values > $self->{accent_treshold}
	) {
        for (my $i = 1; $i < @values - 1; $i++) {
            my $value = $values[$i];
		    ## XXX Why don't I need this line?
            ##next unless defined $value;

            my ($x, $y) = $poly->getPt($i);
            my $bottom = $bottom[$i]->[1];

            $self->{graph}->dashedLine($x, $y, $x, $bottom, $brci);
        }
    }

    return $ds
}

'End of module';

__END__

=head1 NAME

GD::Graph::splined - Smooth line graphs with GD::Graph

=head1 SYNOPSIS

	use strict;
	use GD::Graph::splined;

	my @data = (
	    ["1st","2nd","3rd","4th","5th","6th","7th", "8th", "9th"],
	    [    5,   12,   24,   33,   19,undef,    6,    15,    21],
	    [    1,    2,    5,    6,    3,  1.5,    1,     3,     4]
	);

	my $graph = GD::Graph::splined->new;

	$graph->set(
		x_label => 'X Label',
		y_label => 'Y label',
		title => 'A Splined Graph',
	);
	$graph->set_legend( 'one', 'two' );
	$graph->plot(\@data);

	open(OUT, ">splined.png") or die $!;
	binmode OUT;
	print OUT $graph->gd->png;
	close OUT;

=head1 DESCRIPTION

A L<GD::Graph|GD::Graph> module that can be treated as an C<area> graph, but
renders splined (smoothed) line graphs.

See L<GD::Graph|GD::Graph> for more details of how to produce graphs with GD.

=head1 BUGS

Please use the CPAN Request Tracker to lodge bugs: L<http://rt.cpan.org|http://rt.cpan.org>.

=head1 SEE ALSO

L<GD::Graph>, L<GD::Graph::area>, L<GD::Polyline>, L<GD>.

=head1 AUTHOR AND COPYRIGHT

Lee Goddard added to Martien Verbruggen's L<GD::Graph::area|GD::Graph::area> module
the ability to use Daniel J Harasty's L<GD::Polyline> module.

Thus, Copyright (c) 1995-2000 Martien Verbruggen
with parts copyright (c) 2006 Lee Goddard (lgoddard -at- cpan -dot- org).

This software is made available under the same terms as L<GD::Graph|GD::Graph>.



( run in 2.112 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )