Viewing file: barlinefreq_csimex1.html (14.91 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php // // Example of CSIM frequence bar that uses the cache // include_once ("../jpgraph.php"); include_once ("../jpgraph_bar.php"); include_once ("../jpgraph_line.php");
// Utility function to calculate the accumulated frequence // for a set of values and ocurrences function accfreq($data) { rsort($data); $s = array_sum($data); $as = array($data[0]); $asp = array(100*$as[0]/$s); $n = count($data); for( $i=1; $i < $n; ++$i ) { $as[$i] = $as[$i-1]+$data[$i]; $asp[$i] = 100.0*$as[$i]/$s; } return $asp; }
// some data $data_freq = array(22,20,12,10,5,4,2); $data_accfreq = accfreq($data_freq);
// Create the graph. $graph = new Graph(350,250);
// We need to make this extra call for CSIM scripts // that make use of the cache. If the cache contains this // graph the HTML wrapper will be returned and then the // method will call exit() and hence NO LINES AFTER THIS // CALL WILL BE EXECUTED. // $graph->CheckCSIMCache('auto');
// Setup some basic graph parameters $graph->SetScale("textlin"); $graph->SetY2Scale('lin',0,100); $graph->img->SetMargin(50,70,30,40); $graph->yaxis->SetTitleMargin(30); $graph->SetMarginColor('#EEEEEE');
// Setup titles and fonts $graph->title->Set("Frequence plot"); $graph->xaxis->title->Set("X-title"); $graph->yaxis->title->Set("Y-title");
$graph->title->SetFont(FF_FONT1,FS_BOLD); $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD); $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
// Turn the tickmarks $graph->xaxis->SetTickSide(SIDE_DOWN); $graph->yaxis->SetTickSide(SIDE_LEFT);
$graph->y2axis->SetTickSide(SIDE_RIGHT); $graph->y2axis->SetColor('black','blue'); $graph->y2axis->SetLabelFormat('%3d.0%%');
// Create a bar pot $bplot = new BarPlot($data_freq);
// Create targets and alt texts for the image maps. One for each bar // (In this example this is just "dummy" targets) $targ=array("#1","#2","#3","#4","#5","#6","#7"); $alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d","val=%d"); $bplot->SetCSIMTargets($targ,$alts);
// Create accumulative graph $lplot = new LinePlot($data_accfreq);
// We want the line plot data point in the middle of the bars $lplot->SetBarCenter();
// Use transperancy $lplot->SetFillColor('lightblue@0.6'); $lplot->SetColor('blue@0.6'); //$lplot->SetColor('blue'); $graph->AddY2($lplot);
// Setup the bars $bplot->SetFillColor("orange@0.2"); $bplot->SetValuePos('center'); $bplot->value->SetFormat("%d"); $bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9); $bplot->value->Show();
// Add it to the graph $graph->Add($bplot);
// Send back the HTML page which will call this script again // to retrieve the image. $graph->StrokeCSIM('barlinefreq_csimex1.php');
?>
|