Chart:...torial(3pm)

๐Ÿ“ฆ
version 2.90 ยท 3 versions
, in ubuntu noble, ubuntu resolute, ubuntu stonking

๐ŸŽ€ NAME ๐ŸŽ€

okay bestie, say hi to Chart::Clicker::Tutorial โ€” it's the Tutorial for using Chart::Clicker, and it lives in the Perl module manpages (that's the 3pm vibe, iykyk). โœจ


๐ŸŒธ VERSION ๐ŸŒธ

version 2.90 ๐Ÿ’…


๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

so the whole entire point of this doc is to be a tutorial for using Chart::Clicker. that's it, that's the mission. no cap. ๐Ÿซถ


โœจ EXAMPLES โœจ

๐ŸŒˆ Simple chart from a single data source

# grab the needed modules
use Chart::Clicker;
use Chart::Clicker::Data::Series;
use Chart::Clicker::Data::DataSet;

# build the chart
my $chart = Chart::Clicker->new;

# build the series (static here, will usually be supplied arrayrefs from elsewhere)
my $series = Chart::Clicker::Data::Series->new(
    keys    =>      [ 1,2,3,4,5 ],
    values  =>      [ 52,74,52,82,14 ],
);

# build the dataset
my $dataset = Chart::Clicker::Data::DataSet->new(
    series  =>      [ $series ],
);

# add the dataset to the chart
$chart->add_to_datasets($dataset);

# write the chart to a file
$chart->write_output('chart.png');

๐Ÿ’œ Simple chart from multiple data sources

use Chart::Clicker;
use Chart::Clicker::Data::Series;
use Chart::Clicker::Data::DataSet;

my $chart = Chart::Clicker->new;

# start an array that will hold the series data
my $series1 = Chart::Clicker::Data::Series->new(
    keys    =>      [ 1,2,3,4,5 ],
    values  =>      [ 52,74,52,82,14 ]
);
my $series2 = Chart::Clicker::Data::Series->new(
    keys    =>      [ 1,2,3,4,5 ],
    values  =>      [ 34,67,89,45,67 ]
);

# add the array of series data to the dataset
my $dataset = Chart::Clicker::Data::DataSet->new(
    series  => [ $series1, $series2 ]
);

$chart->add_to_datasets($dataset);

$chart->write_output('chart.png');

๐Ÿ“ Simple chart with multiple data sources and custom colors

use Chart::Clicker;
use Chart::Clicker::Data::Series;
use Chart::Clicker::Data::DataSet;
# some new modules, these are only needed if you want to monkey with color changing
use Graphics::Color::RGB;
use Chart::Clicker::Drawing::ColorAllocator;

# build the color allocator
my $ca = Chart::Clicker::Drawing::ColorAllocator->new;
# this hash is simply here to make things readable and cleaner, you can always call G::C::R inline
my $red = Graphics::Color::RGB->new({
    red => .75, green => 0, blue => 0, alpha => .8
});
my $green = Graphics::Color::RGB->new({
    red => 0,green => .75, blue=> 0, alpha=> .8
});
my $blue = Graphics::Color::RGB->new({
    red => 0, green => 0, blue => .75, alpha => .8
}),

my $chart = Chart::Clicker->new;

# Create an empty dataset that we can add to
my $dataset = Chart::Clicker::Data::DataSet->new;

$dataset->add_to_series(Chart::Clicker::Data::Series->new(
    keys    => [ 1,2,3,4,5 ],
    values  => [ 52,74,52,82,14 ]
));
# add a color - note that the order of colors and the order of the
# series must match, the first series will use the first color and so on
# see contexts and axes for alternate ways of doing this
$ca->add_to_colors($blue);

$dataset->add_to_series(Chart::Clicker::Data::Series->new(
    keys    =>  [ 1,2,3,4,5 ],
    values   =>  [ 34,67,89,45,67 ]
));
# add a second color
$ca->add_to_colors($red);

$dataset->add_to_series(Chart::Clicker::Data::Series->new(
    keys    =>  [ 1,2,3,4,5 ],
    values   =>  [ 11,22,33,44,55 ]
));
# add a third color
$ca->add_to_colors($green);

$chart->add_to_datasets($dataset);

# assign the color allocator to the chart
$chart->color_allocator($ca);

$chart->write_output('chart.png');

๐Ÿงš Example 4 : Simple chart with a different render type

use Chart::Clicker;
use Chart::Clicker::Data::Series;
use Chart::Clicker::Data::DataSet;
# add in the module of the renerer(s) you want to use
use Chart::Clicker::Renderer::Area;

my $chart = Chart::Clicker->new;

my $series = Chart::Clicker::Data::Series->new(
    keys    => [ 1,2,3,4,5 ],
    values  => [ 52,74,52,82,14 ]
);

my $dataset = Chart::Clicker::Data::DataSet->new(
    series  => [ $series ]
);

$chart->add_to_datasets($dataset);

# build the renderer to use
my $renderer = Chart::Clicker::Renderer::Area->new(
    opacity => .75,
);

# assign the renderer to the default context
$chart->set_renderer($renderer);

$chart->write_output('chart.png');

๐Ÿ‘‘ Example 5 : Width and Height

my $chart = Chart::Clicker->new(width => 1024, height => 768);

๐ŸŒŸ Example 6 : PDF (or SVG or PS)

my $chart = Chart::Clicker->new(format => 'pdf');

# Create the rest of your chart normally

$chart->write_output('chart.pdf');

๐Ÿ™ˆ Example 7 : Hide the Legend and X-Axis

my $chart = Chart::Clicker->new;

# hide the legend
$chart->legend->visible(0);

# hide the X-Axis
$chart->get_context('default')->domain_axis->hidden(1);

๐Ÿ’€ Example 8 : Change the display format of the Y-Axis

my $chart = Chart::Clicker->new;

# a sprintf format to have 3 decimal places showing on the Y-Axis
$chart->get_context('default')->range_axis->format('%.3f');

๐Ÿ’… DISCLAIMER ๐Ÿ’…

ngl, this is a work in progress. if you find errors or you're feeling generous and wanna make contributions, drop me a line! ๐Ÿ“ฎ

like fr fr, this doc is not finished. lowkey iconic of it honestly.

๐Ÿซถ AUTHOR ๐Ÿซถ

Cory G Watson <gphat@cpan.org> โ€” yeah, that's the main character right there. ๐Ÿ‘‘


This software is copyright (c) 2016 by Cory G Watson.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.


and that's a wrap bestie!! this page was served up by perl v5.36.0, dated 2022-10-14, straight from the Chart:...torial(3pm) files. slay, go make some charts ๐Ÿ’–๐Ÿฆ‹๐ŸŒธ

๐Ÿ“ฆ where this page comes from