예제 #1
0
$lineChart->addAxisRange(1, 30, 400);<br>
$lineChart->addBackgroundFill('bg', 'EFEFEF');<br>
$lineChart->addBackgroundFill('c', '000000');<br>
</code>
</p>
<h2>Line Chart with Strip Fill</h2>
<?php 
$lineChart = new gLineChart(300, 300);
$lineChart->addDataSet(array(112, 315, 66, 40));
$lineChart->addDataSet(array(212, 115, 366, 140));
$lineChart->addDataSet(array(112, 95, 116, 140));
$lineChart->setLegend(array("first", "second", "third", "fourth"));
$lineChart->setColors(array("ff3344", "11ff11", "22aacc", "3333aa"));
$lineChart->setVisibleAxes(array('x', 'y'));
$lineChart->setDataRange(30, 400);
$lineChart->addAxisLabel(0, array("This", "axis", "has", "labels!"));
$lineChart->addAxisRange(1, 30, 400);
$lineChart->setStripFill('bg', 0, array('CCCCCC', 0.15, 'FFFFFF', 0.1));
?>
<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,315,66,40));<br>
$lineChart->addDataSet(array(212,115,366,140));<br>
$lineChart->addDataSet(array(112,95,116,140));<br>
$lineChart->setLegend(array("first", "second", "third","fourth"));<br>
예제 #2
0
 public static function build_pireptable($pilotid, $days = '30', $color = '000000', $background = 'EFEFEF', $width = '950', $height = '260')
 {
     #make sure $days is even - if not add 1
     if ($days & 1) {
         $days++;
     }
     $output = array();
     #set current date
     $month = date("m");
     $day = date("d");
     $year = date("Y");
     #set todays date
     $output[] = date('m-d', mktime(0, 0, 0, $month, $day, $year));
     #loop through days
     for ($i = 1; $i <= $days - 1; $i++) {
         $output[] = date('m-d', mktime(0, 0, 0, $month, $day - $i, $year));
     }
     #reverse the days for chart
     $output = array_reverse($output);
     #set baseline values
     $labels = array();
     $points = array();
     $xTotal = 0;
     $yTotal = 0;
     $dataPoint = array();
     $data = PIREPData::getIntervalDataByDays(array('p.pilotid' => $pilotid), $days);
     if ($data) {
         foreach ($data as $dat) {
             $points[] = $dat->total;
             #get highest y-axis value for chart
             if ($dat->total > $total) {
                 $yTotal = $dat->total;
             }
             $date = '';
             $date = explode('-', $dat->ym);
             $labels[] = $date[1] . '-' . $date[2];
             $xTotal++;
             $z = new stdClass();
             $z->label = $date[1] . '-' . $date[2];
             $z->point = $dat->total;
             $dataPoint[] = $z;
         }
     }
     $fLabels = array();
     $fPoints = array();
     $arraySpot = '0';
     foreach ($output as $num => $point) {
         #display every x-axis label on charts 10 days or less
         if ($days < 11) {
             if (in_array($point, $labels)) {
                 $fLabels[] = $dataPoint[$arraySpot]->label;
                 $fPoints[] = $dataPoint[$arraySpot]->point;
                 $arraySpot++;
             } else {
                 $fLabels[] = $point;
                 $fPoints[] = '0';
             }
         } else {
             if (in_array($point, $labels)) {
                 if ($num & 1) {
                     $fLabels[] = $dataPoint[$arraySpot]->label;
                 } else {
                     $fLabels[] = '';
                 }
                 $fPoints[] = $dataPoint[$arraySpot]->point;
                 $arraySpot++;
             } else {
                 if ($num & 1) {
                     $fLabels[] = $point;
                 } else {
                     $fLabels[] = '';
                 }
                 $fPoints[] = '0';
             }
         }
     }
     #build chart params
     $lineChart = new gLineChart($width, $height);
     $lineChart->addDataSet($fPoints);
     $lineChart->setColors(array($color));
     $lineChart->setVisibleAxes(array('x', 'y'));
     $lineChart->setDataRange(0, $yTotal + 1);
     $lineChart->addAxisRange(0, 1, $days, 1);
     $lineChart->addAxisRange(1, 0, $yTotal + 1, 1);
     $lineChart->setlineMarkers('6');
     $lineChart->setlineWidth('1');
     $lineChart->setaxisStyle('0', $color, '10');
     $lineChart->addAxisLabel(0, $fLabels);
     $lineChart->setGridLines(100 / 29, 100 / ($yTotal + 1), 4, 2, 0, 0);
     $lineChart->setTitle("Last " . $days . " Days PIREPS");
     $lineChart->setTitleOptions($color, '18');
     $lineChart->setChartMargins(array(20, 20, 20, 20));
     $lineChart->addBackgroundFill('bg', $background);
     return $lineChart->getUrl();
 }
예제 #3
0
                $timestamps[] = date('H:i', $value->timestamp);
            }
        }
    }
    $i++;
}
for ($i = 2; $i < count($data); $i++) {
    $averages[] = round(($data[$i] + $data[$i - 1] + $data[$i - 2]) / 3);
}
$averages = array_reverse($averages);
$p_in = round($averages[count($averages) - 1]);
$lineChart = new gLineChart(700, 400);
$lineChart->addDataSet($averages);
$lineChart->setLegend(array("People"));
$lineChart->setColors(array("ff3344"));
$lineChart->setVisibleAxes(array('x', 'y'));
$lineChart->setDataRange(0, 1000);
$lineChart->addAxisRange(1, 0, 1000);
$lineChart->addAxisLabel(0, $timestamps);
$lineChart->addLineFill(B, '76A4FB', 0, 0);
$lineChart->setGridLines(100, 10);
$url = $lineChart->getUrl();
print "<p><h1>{$name}</h1></p>";
print "Number of people currently at the station: {$p_in} <br/>";
print "<img src='{$url}' />";
print "<br/><i>A graph showing the number of people at {$name} station over the last day</i><br/>";
?>
</div>
</body>
</html>
예제 #4
0
 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;
 }
예제 #5
0
    function test_LineChart_StripFill()
    {
        $lineChart = new gLineChart(300, 300);
        $lineChart->addDataSet(array(112, 315, 66, 40));
        $lineChart->addDataSet(array(212, 115, 366, 140));
        $lineChart->addDataSet(array(112, 95, 116, 140));
        $lineChart->setLegend(array("first", "second", "third", "fourth"));
        $lineChart->setColors(array("ff3344", "11ff11", "22aacc", "3333aa"));
        $lineChart->setVisibleAxes(array('x', 'y'));
        $lineChart->setDataRange(30, 400);
        $lineChart->addAxisLabel(0, array("This", "axis", "has", "labels!"));
        $lineChart->addAxisRange(1, 30, 400);
        $lineChart->setStripFill('bg', 0, array('CCCCCC', 0.15, 'FFFFFF', 0.1));
        $text = <<<END
newLineChart: 300,300
addDataSet: 112,315,66,40
addDataSet: 212,115,366,140
addDataSet: 112,95,116,140
setLegend: first, second, third, fourth
setColors: ff3344, 11ff11, 22aacc, 3333aa
setVisibleAxes: x, y
setDataRange: 30, 400
addAxisLabel: 0, Labels: This, axis, has, labels!
addAxisRange: 1, 30, 400
setStripFill: bg, 0, Colors: CCCCCC, 0.15, FFFFFF ,0.1

END;
        $parser = new gChartPhpDSLParser();
        $parser->parse($text);
        $this->assertEqual($lineChart->getUrl(), $parser->getUrl());
    }