This example demonstates using y zone colors - colors that change at certain y value thresholds.
In this example, a y zone color is used as the fill color of an area layer, so that the area fill color changes above a certain threshold.
Y zone colors are created using
Layer.yZoneColor. You can use a y zone color in any ChartDirector API that expects a color. For instance, you can use a y zone color as background color, fill color of data sets, line color, etc.
A single y zone color can support one threshold value and change between two colors. The two colors can be any colors, including another y zone colors. You may create y zone colors with multiple thresholds by cascading multiple y zone colors this way.
[File: phpdemo/yzonecolor.php".]
setSearchPath(dirname(__FILE__));
#Set the plotarea at (55, 50) and of size 420 x 205 pixels, with white
#background. Turn on both horizontal and vertical grid lines with light grey
#color (0xc0c0c0)
$plotAreaObj = $c->setPlotArea(55, 50, 420, 205, 0xffffff);
$plotAreaObj->setGridColor(0xc0c0c0, 0xc0c0c0);
#Add a legend box at (55, 25) (top of the chart) with horizontal layout. Use 8
#pts Arial font. Set the background and border color to Transparent.
$legendBox = $c->addLegend(55, 25, false, "", 8);
$legendBox->setBackground(Transparent);
#Add keys to the legend box to explain the color zones
$legendBox->addKey("Normal Zone", 0x8033ff33);
$legendBox->addKey("Alert Zone", 0x80ff3333);
#Add a title box to the chart using 13 pts Arial Bold Italic font. The title is
#in CDML and includes embedded images for highlight. The text is white
#(0xffffff) on a black background, with a 1 pixel 3D border.
$titleObj = $c->addTitle(
"<*block,valign=absmiddle*><*img=star.png*><*img=star.png*> Y Zone Color ".
"Demo <*img=star.png*><*img=star.png*><*/*>", "arialbi.ttf", 13, 0xffffff);
$titleObj->setBackground(0x0, -1, 1);
#Add a title to the y axis
$c->yAxis->setTitle("Energy Concentration (KJ per liter)");
#Set the labels on the x axis
$c->xAxis->setLabels($labels);
#Add a title to the x axis using CDML
$c->xAxis->setTitle(
"<*block,valign=absmiddle*><*img=clock.png*> Elapsed Time (hour)<*/*>");
#Set the axes width to 2 pixels
$c->xAxis->setWidth(2);
$c->yAxis->setWidth(2);
#Add an area layer to the chart. The area is using a y zone color, where the
#color is semi-transparent green below 60, and semi-transparent red above 60.
$layer = $c->addAreaLayer2();
$layer->addDataSet($data, $layer->yZoneColor(60, 0x8033ff33, 0x80ff3333));
#Add a custom CDML text at the bottom right of the plot area as the logo
$textObj = $c->addText(475, 255,
"<*block,valign=absmiddle*><*img=small_molecule.png*> <*block*>".
"<*font=timesbi.ttf,size=10,color=804040*>Molecular\nEngineering<*/*>");
$textObj->setAlignment(BottomRight);
#output the chart
header("Content-type: image/png");
print($c->makeChart2(PNG));
?> |
© 2004 Advanced Software Engineering Limited. All rights reserved.