This example demonstrates the basic steps in creating bar charts.
- Create an XYChart object using XYChart.XYChart.
- Specify the plot area of the chart using XYChart.setPlotArea. The plot area is the rectangle bounded by the x and y axes. You should leave some margin on the outside of the plot area for axis labels, chart titles, etc.
- Specify the labels on the x-axis using Axis.setLabels.
- Add a bar layer and specify the data for the bars using XYChart.addBarLayer.
- Generate the chart using BaseChart.makeChart.
[Standalone Version] perldemo\simplebar.pl
#!/usr/bin/perl
use perlchartdir;
# The data for the bar chart
my $data = [85, 156, 179.5, 211, 123];
# The labels for the bar chart
my $labels = ["Mon", "Tue", "Wed", "Thu", "Fri"];
# Create a XYChart object of size 250 x 250 pixels
my $c = new XYChart(250, 250);
# Set the plotarea at (30, 20) and of size 200 x 200 pixels
$c->setPlotArea(30, 20, 200, 200);
# Add a bar chart layer using the given data
$c->addBarLayer($data);
# Set the labels on the x axis.
$c->xAxis()->setLabels($labels);
# output the chart
$c->makeChart("simplebar.png") |
[CGI Version] perldemo_cgi\simplebar.pl
#!/usr/bin/perl
# Include current script directory in the module path (needed on Microsoft IIS).
# This allows this script to work by copying ChartDirector to the same directory
# as the script (as an alternative to installation in Perl module directory)
use File::Basename;
use lib dirname($0);
use perlchartdir;
# The data for the bar chart
my $data = [85, 156, 179.5, 211, 123];
# The labels for the bar chart
my $labels = ["Mon", "Tue", "Wed", "Thu", "Fri"];
# Create a XYChart object of size 250 x 250 pixels
my $c = new XYChart(250, 250);
# Set the plotarea at (30, 20) and of size 200 x 200 pixels
$c->setPlotArea(30, 20, 200, 200);
# Add a bar chart layer using the given data
$c->addBarLayer($data);
# Set the labels on the x axis.
$c->xAxis()->setLabels($labels);
# output the chart
binmode(STDOUT);
print "Content-type: image/png\n\n";
print $c->makeChart2($perlchartdir::PNG); |
© 2008 Advanced Software Engineering Limited. All rights reserved.