package Template::Plugin::GD::Graph::lines; use strict; use warnings; use base qw( GD::Graph::lines Template::Plugin ); our $VERSION = sprintf("%d.%02d", q$Revision: 1.58 $ =~ /(\d+)\.(\d+)/); sub new { my $class = shift; my $context = shift; return $class->SUPER::new(@_); } sub set { my $self = shift; push(@_, %{pop(@_)}) if ( @_ & 1 && ref($_[@_-1]) eq "HASH" ); $self->SUPER::set(@_); } sub set_legend { my $self = shift; $self->SUPER::set_legend(ref $_[0] ? @{$_[0]} : @_); } 1; __END__ =head1 NAME Template::Plugin::GD::Graph::lines - Create line graphs with axes and legends =head1 SYNOPSIS [% USE g = GD.Graph.lines(x_size, y_size); %] =head1 EXAMPLES [% FILTER null; USE g = GD.Graph.lines(300,200); x = [1, 2, 3, 4]; y = [5, 4, 2, 3]; g.set( x_label => 'X Label', y_label => 'Y label', title => 'Title' ); g.plot([x, y]).png | stdout(1); END; -%] [% FILTER null; data = [ ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ], [-5, -4, -3, -3, -1, 0, 2, 1, 3, 4, 6, 7], [4, 3, 5, 6, 3,1.5, -1, -3, -4, -6, -7, -8], [1, 2, 2, 3, 4, 3, 1, -1, 0, 2, 3, 2], ]; USE my_graph = GD.Graph.lines(); my_graph.set( x_label => 'Month', y_label => 'Measure of success', title => 'A Simple Line Graph', y_max_value => 8, y_min_value => -8, y_tick_number => 16, y_label_skip => 2, box_axis => 0, line_width => 3, zero_axis_only => 1, x_label_position => 1, y_label_position => 1, x_label_skip => 3, x_tick_offset => 2, transparent => 0, ); my_graph.set_legend("Us", "Them", "Others"); my_graph.plot(data).png | stdout(1); END; -%] =head1 DESCRIPTION The GD.Graph.lines plugin provides an interface to the GD::Graph::lines class defined by the GD::Graph module. It allows one or more (x,y) data sets to be plotted as y versus x lines with axes and legends. See L for more details. =head1 AUTHOR Thomas Boutell wrote the GD graphics library. Lincoln D. Stein wrote the Perl GD modules that interface to it. Martien Verbruggen wrote the GD::Graph module. Craig Barratt Ecraig@arraycomm.comE wrote the original GD plugins for the Template Toolkit (2001). Andy Wardley Eabw@cpan.orgE extracted them from the TT core into a separate distribution for TT version 2.15. =head1 COPYRIGHT Copyright (C) 2001 Craig Barratt Ecraig@arraycomm.comE, 2006 Andy Wardley Eabw@cpan.orgE. GD::Graph is copyright 1999 Martien Verbruggen. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L =cut # Local Variables: # mode: perl # perl-indent-level: 4 # indent-tabs-mode: nil # End: # # vim: expandtab shiftwidth=4: