ChartDirector
Version 3.1


PHP Edition Edition
Programmer's Manual



By Advanced Software Engineering Limited

© 2004 Advanced Software Engineering Limited. All rights reserved.
[ASE doc code: cddoc PHP 3100]
y the err term.

In ChartDirector, the linear regression parameters slope, intercept, correlation coefficient and standard error can be obtained using TrendLayer.getSlope, TrendLayer.getIntercept, TrendLayer.getCorrelation and TrendLayer.getStdError. (Please refer to appropriate statistics text books on explanation of these values.)

In this example, the linear regression parameters are formatted into a table using CDML, which is then added to the chart as custom text box using BaseChart.addText.

Source Code Listing

[File: phpdemo/confidenceband.php".]
<?php require_once("../lib/phpchartdir.php"); #The XY data of the first data series $dataX = array(50, 55, 37, 24, 42, 49, 63, 72, 83, 59); $dataY = array(3.6, 2.8, 2.5, 2.3, 3.8, 3.0, 3.8, 5.0, 6.0, 3.3); #Create a XYChart object of size 450 x 420 pixels $c = new XYChart(450, 420); #Set the plotarea at (55, 65) and of size 350 x 300 pixels, with white #background and a light grey border (0xc0c0c0). Turn on both horizontal and #vertical grid lines with light grey color (0xc0c0c0) $c->setPlotArea(55, 65, 350, 300, 0xffffff, -1, 0xc0c0c0, 0xc0c0c0, -1); #Add a title to the chart using 18 point Times Bold Itatic font. $c->addTitle("Server Performance", "timesbi.ttf", 18); #Add a title to the y axis using 12 pts Arial Bold Italic font $c->yAxis->setTitle("Response Time (sec)", "arialbi.ttf", 12); #Set the y axis line width to 3 pixels $c->yAxis->setWidth(3); #Set the y axis label format to show 1 decimal point $c->yAxis->setLabelFormat("{value|1}"); #Add a title to the x axis using 12 pts Arial Bold Italic font $c->xAxis->setTitle("Server Load (TPS)", "arialbi.ttf", 12); #Set the x axis line width to 3 pixels $c->xAxis->setWidth(3); #Add a scatter layer using (dataX, dataY) $c->addScatterLayer($dataX, $dataY, "", DiamondSymbol, 11, 0x8000); #Add a trend line layer for (dataX, dataY) $trendLayer = $c->addTrendLayer2($dataX, $dataY, 0x8000); #Set the line width to 3 pixels $trendLayer->setLineWidth(3); #Add a 95% confidence band for the line $trendLayer->addConfidenceBand(0.95, 0x806666ff); #Add a 95% confidence band (prediction band) for the points $trendLayer->addPredictionBand(0.95, 0x8066ff66); #Add a legend box at (50, 30) (top of the chart) with horizontal layout. Use 10 #pts Arial Bold Italic font. Set the background and border color to Transparent. $legendBox = $c->addLegend(50, 30, false, "arialbi.ttf", 10); $legendBox->setBackground(Transparent); #Add entries to the legend box $legendBox->addKey("95% Line Confidence", 0x806666ff); $legendBox->addKey("95% Point Confidence", 0x8066ff66); #Display the trend line parameters as a text table formatted using CDML $textbox = $c->addText(56, 65, sprintf( "<*block*>Slope\nIntercept\nCorrelation\nStd Error<*/*> <*block*>%.4f ". "sec/tps\n%.4f sec\n%.4f\n%.4f sec<*/*>", $trendLayer->getSlope(), $trendLayer->getIntercept(), $trendLayer->getCorrelation(), $trendLayer->getStdError()), "arialbd.ttf", 8); #Set the background of the text box to light grey, with a black border, and 1 #pixel 3D border $textbox->setBackground(0xc0c0c0, 0, 1); #output the chart header("Content-type: image/png"); print($c->makeChart2(PNG)); ?>


color that switches on and off periodically. When used to draw a line, the line will appear as a dash line.

Dash line colors are created using BaseChart.dashLineColor and DrawArea.dashLineColor. They accept a line color and a dash pattern code as arguments, and return a 32-bit integer acting as a handle to the dash line color. The handle can be used in any ChartDirector API that expects a color as its input.

Palette Colors

Palette colors are colors of the format FFFFnnnn, where the least significant 16 bits (nnnn) are the index to the palette. A palette is simply an array of colors. For a palette color, the actual color is obtained by looking up the palette using the index. For example, the color FFFF0001 is the second color in the palette (first color is index 0).

The colors in the palette can be ARGB colors or "dynamic" colors (pattern, gradient and dash line colors).

The first eight palette colors have special significance. The first three palette colors are the background color, default line color, and default text color of the chart. The 4th to 7th palette colors are reserved for future use. The 8th color is a special dynamic color that is equal to the data color of the "current data set".

The 9th color (index = 8) onwards are used for automatic data colors. For example, in a pie chart, if the sector colors are not specified, ChartDirector will automatically use the 9th color for the first sector, the 10th color for the second sector, and so on. Similarly, for a multi-line chart, if the line colors are not specified, ChartDirector will use the 9th color for the first line, the 10th color for the second line, and so on.

The ChartDirector API pre-defines several constants to facilitate using palette colors.

ConstantValueDescription
PaletteFFFF0000 The starting point of the palette. The first palette color is (Palette + 0). The nth palette color is (Palette + n - 1).
BackgroundColorFFFF0000The background color.
LineColorFFFF0001The default line color.
TextColorFFFF0002The default text color.
[Reserved]FFFF0003 - FFFF0006 These palette positions are reserved. Future versions of ChartDirector may use these palette positions for colors that have special significance.
SameAsMainColorFFFF0007A dynamic color that is equal to the data color of the current data set. This color is useful for objects that are associated with data sets. For example, in a pie chart, if the sector label background color is SameAsMainColor, its color will be the same as the corresponding sector color.
DataColorFFFF0008The starting point for the automatic data color allocation.

When a chart is created, it has a default palette. You may modify the palette using BaseChart.setColor, BaseChart.setColors, or BaseChart.setColors2.

The advantages of using palette colors are that you can change the color schemes of the chart in one place. ChartDirector comes with several built-in palettes represented by the following pre-defined constants.

ConstantDescription
defaultPalette An array of colors representing the default palette. This palette is designed for drawing charts on white backgrounds (or lightly colored backgrounds).
whiteOnBlackPalette An array of colors useful for drawing charts on black backgrounds (or darkly colored backgrounds).
transparentPalette An array of colors useful drawing charts on white backgrounds (or lightly colored backgrounds). The data colors in this palette are all semi-transparent.


'712', '784');