function createChart($stats) { $data = array(); $nb_jour = 0; $temp = ""; $date_differente = array(); foreach ($stats as $row) { $data[] = $row[1]; //le nombre d'auditeurs list($date[], $heure[]) = explode(' ', $row[2]); //les horaires } //on compte le nombre de jour différents foreach ($date as $test) { if ($test != $temp) { $temp = $test; $nb_jour = $nb_jour + 1; list($annee, $mois, $jour) = explode('-', $test); $date_differente[] = $jour . "-" . $mois; } } //Ajout de la date de demain, pour le dernier label de l'axe sur 7 jours $date_differente[] = "Maintenant"; //calcul des valeurs maximales $max_auditeurs = ceil(max($data) / 10) * 10; //nb max d'auditeurs arrondi à la dizaine supérieure //$nb_jour=count($date);//compte le nb de jour présent dans les stats if ($nb_jour == 1) { $max_horaire = max($heure) + 1; //si un seul jour de stat, on regarde l'heure maximale connue pour ajuster l'axe des abscisses list($max_heure, $max_minute, $max_seconde) = explode(':', $max_horaire); } else { $max_heure = $nb_jour; } $nb_valeur = count($data); //largeur du graphique $size = $nb_valeur * 6; $size = $size > 1000 ? 1000 : $size; $size = $size < 300 ? 300 : $size; $lineChart = new gLineChart($size, 300); /*if ($max_auditeurs>100) { //$lineChart->setEncodingType('e'); }*/ $lineChart->addDataSet($data); //$lineChart->setLegend(array("first")); $lineChart->setColors(array("ff3344")); $lineChart->setVisibleAxes(array('x', 'y')); $lineChart->setDataRange(0, $max_auditeurs); $lineChart->addAxisRange(0, 0, $max_heure, 1); $lineChart->addAxisRange(1, 0, $max_auditeurs); $lineChart->addLineFill('B', '76A4FB', 0, 0); if ($nb_jour > 1) { $lineChart->addAxisLabel(0, $date_differente); } if ($max_auditeurs != 0) { $lineChart->setGridLines(0, 1000 / $max_auditeurs); } //$lineChart->addAxisLabel(0, $heure); $chart = $lineChart->getUrl(); return $chart; }
$lineChart->addAxisLabel(0, array("This", "axis", "has", "labels!"));<br> $lineChart->addAxisRange(1, 30, 400);<br> $lineChart->setStripFill('bg',0,array('CCCCCC',0.15,'FFFFFF',0.1);<br> </code> </p> <h2>Line Chart with Line Fill</h2> <?php $lineChart = new gLineChart(300, 300); $lineChart->addDataSet(array(112, 125, 66, 40)); $lineChart->setLegend(array("first")); $lineChart->setColors(array("ff3344")); $lineChart->setVisibleAxes(array('x', 'y')); $lineChart->setDataRange(30, 130); $lineChart->addAxisRange(0, 1, 4, 1); $lineChart->addAxisRange(1, 30, 130); $lineChart->addLineFill('B', '76A4FB', 0, 0); ?> <img src="<?php print $lineChart->getUrl(); ?> " /> <br> line chart using the gLineChart class. <p> <em>code:</em><br> <code> $lineChart = new gLineChart(300,300);<br> $lineChart->addDataSet(array(112,125,66,40));<br> $lineChart->setLegend(array("first"));<br> $lineChart->setColors(array("ff3344"));<br> $lineChart->setVisibleAxes(array('x','y'));<br> $lineChart->setDataRange(30,130);<br> $lineChart->addAxisRange(0, 1, 4, 1);<br>
function test_LineChart_LineFill() { $lineChart = new gLineChart(300, 300); $lineChart->addDataSet(array(112, 125, 66, 40)); $lineChart->setLegend(array("first")); $lineChart->setColors(array("ff3344")); $lineChart->setVisibleAxes(array('x', 'y')); $lineChart->setDataRange(30, 130); $lineChart->addAxisRange(0, 1, 4, 1); $lineChart->addAxisRange(1, 30, 130); $lineChart->addLineFill('B', '76A4FB', 0, 0); $text = <<<END newLineChart: 300,300 addDataSet: 112,125,66,40 setLegend: first setColors: ff3344 setVisibleAxes: x, y setDataRange: 30, 130 addAxisRange: 0, 1, 4, 1 addAxisRange: 1, 30, 130 addLineFill: B,76A4FB,0,0 END; $parser = new gChartPhpDSLParser(); $parser->parse($text); $this->assertEqual($lineChart->getUrl(), $parser->getUrl()); }