ChartDirector Ver 3.0 (Perl Edition)

Box-Whisker Chart




A traditional box-whisker chart represent 5 data series using box-whisker symbols, where the 5 data series are maximum, 3rd quartile, median, 1st quartile and minimum of some quantities. The 3rd and 1st quartile values are represented as a box. The maximum, minimum and median values are represented as horizontal marks. There is a vertical line joining the maximum and minimum marks.

In ChartDirector, you may use any data quantities for the box-whisker layer. Also, the ChartDirector box-whisker layer can support more than 5 data series. Additional data series are represented as marks similar to the median mark. You can also leave out some data series.

For example, to create a floating box chart, you may supply only the 3rd and 1st quartile series and leave out the other three series. Similarly, you can create a chart with only the maximum and minimum marks and the vertical joining line by leaving out the 3rd quartile, median and 1st quartile values. The latter chart is useful to represent error range by inserting it under a line layer.

Source Code Listing

[File: perldemo/boxwhisker.pl] (The CGI version is available as "perldemo_cgi/boxwhisker.pl".)
#!/usr/bin/perl use perlchartdir; #Sample data for the Box-Whisker chart. Represents the minimum, 1st quartile, #medium, 3rd quartile and maximum values of some quantities my $Q0Data = [40, 45, 40, 30, 20, 50, 25, 44]; my $Q1Data = [55, 60, 50, 40, 38, 60, 51, 60]; my $Q2Data = [62, 70, 60, 50, 48, 70, 62, 70]; my $Q3Data = [70, 80, 65, 60, 53, 78, 69, 76]; my $Q4Data = [80, 90, 75, 70, 60, 85, 80, 84]; #The labels for the chart my $labels = ["Group A", "Group B", "Group C", "Group D", "Group E", "Group F", "Group G", "Group H"]; #Create a XYChart object of size 550 x 250 pixels my $c = new XYChart(550, 250); #Set the plotarea at (50, 25) and of size 450 x 200 pixels. Enable both #horizontal and vertical grids by setting their colors to grey (0xc0c0c0) $c->setPlotArea(50, 25, 450, 200)->setGridColor(0xc0c0c0, 0xc0c0c0); #Add a title to the chart $c->addTitle("Computer Vision Test Scores"); #Set the labels on the x axis and the font to Arial Bold $c->xAxis()->setLabels($labels)->setFontStyle("arialbd.ttf"); #Set the font for the y axis labels to Arial Bold $c->yAxis()->setLabelStyle("arialbd.ttf"); #Add a Box Whisker layer using light blue 0x9999ff as the fill color and blue #(0xcc) as the line color. Set the line width to 2 pixels $c->addBoxWhiskerLayer($Q1Data, $Q3Data, $Q4Data, $Q0Data, $Q2Data, 0x9999ff, 0xcc)->setLineWidth(2); #output the chart $c->makeChart("boxwhisker.png")