Chart::OFC2::Scatter - OFC2 Scatter chart


Chart-OFC2 documentation Contained in the Chart-OFC2 distribution.

Index


Code Index:

NAME

Top

Chart::OFC2::Scatter - OFC2 Scatter chart

DESCRIPTION

Top

	extends 'Chart::OFC2::Element';

PROPERTIES

Top

	has '+type_name' => (default => 'scatter');

METHODS

Top

set_extremes()

Set the chart element extremes.


Chart-OFC2 documentation Contained in the Chart-OFC2 distribution.
package Chart::OFC2::Scatter;

use Moose;
use MooseX::StrictConstructor;

our $VERSION = '0.07';

extends 'Chart::OFC2::Element';

has '+type_name'    => (default => 'scatter');
has '+use_extremes' => (default => 1);    # scatter needs x-y min-maxes to print
has '+extremes'     => (default => sub { $_[0]->set_extremes }, lazy => 1 );    # scatter needs x-y min-maxes to print


sub set_extremes {
    my ($self) = @_;
    my $extremes = {
        'x_axis_max' => undef,
        'x_axis_min' => undef,
        'y_axis_max' => undef,
        'y_axis_min' => undef,
        'other'      => undef
    };
    for (@{ $self->values }) {
        $extremes->{'y_axis_max'} = $_->{'y'} if !defined($extremes->{'y_axis_max'});
        if ($_->{'y'} > $extremes->{'y_axis_max'}) {
            $extremes->{'y_axis_max'} = $_->{'y'};
        }
        $extremes->{'y_axis_min'} = $_->{'y'} if !defined($extremes->{'y_axis_min'});
        if ($_->{'y'} < $extremes->{'y_axis_min'}) {
            $extremes->{'y_axis_min'} = $_->{'y'};
        }

        $extremes->{'x_axis_max'} = $_->{'x'} if !defined($extremes->{'x_axis_max'});
        if ($_->{'x'} > $extremes->{'x_axis_max'}) {
            $extremes->{'x_axis_max'} = $_->{'x'};
        }
        $extremes->{'x_axis_min'} = $_->{'x'} if !defined($extremes->{'x_axis_min'});
        if ($_->{'x'} < $extremes->{'x_axis_min'}) {
            $extremes->{'x_axis_min'} = $_->{'x'};
        }

    }
    $self->extremes(Chart::OFC2::Extremes->new($extremes));
}

1;