#!/usr/bin/perl -w
use strict;
use Chart::Gnuplot;
# Prepare data to plot
my @x = (1 .. 4);
my (@y1, @y2, @y3) = ();
for (my $i = 0; $i < @x; $i++)
{
my $y1 = sqrt($x[$i]) + 1.5*(rand()-0.5);
my $y2 = sqrt($x[$i]) + 1.5*(rand()-0.5);
my $y3 = sqrt($x[$i]) + 1.5*(rand()-0.5);
push(@y1, $y1);
push(@y2, $y2);
push(@y3, $y3);
}
# Chart object
my $chart = Chart::Gnuplot->new(
output => "bar.png",
xrange => [-1, 4],
yrange => [0, 3],
imagesize => "0.45,0.45",
);
# DataSet object of the data set A
my $dataA = Chart::Gnuplot::DataSet->new(
xdata => \@x,
ydata => \@y1,
style => "histograms",
color => "#DD8888",
fill => {density => 0.5},
);
# DataSet object of the data set B
my $dataB = Chart::Gnuplot::DataSet->new(
xdata => \@x,
ydata => \@y2,
style => "histograms",
color => "#88DD88",
fill => {density => 0.5},
linetype => 'solid',
);
# DataSet object of the data set C
my $dataC = Chart::Gnuplot::DataSet->new(
xdata => \@x,
ydata => \@y3,
style => "histograms",
color => "#8888DD",
fill => {density => 0.5},
linetype => 'solid',
);
# Plot the graph
$chart->plot2d($dataA, $dataB, $dataC);