Op deze pagina verklaring over het maken van grafieken aan de hand van PHP code met manueel ingegeven waarden en data uit onze MySQL database.


PHPGraphLib downloaden en in /libs plaatsen

Het grootste werk is gedaan door Elliott Brueggeman en kan opgehaald worden op zijn site

Er staan verschillende voorbeelden op de site.

we plaatsen het bestand in /libs/phpgraphlib.php
en maken een directory /afbeeldingen/graphs/ (met permission op 777, dan zal met toekennen van een waarde aan $filename een afbeelding gemaakt worden. vb $graph = new PHPGraphLib(440,250, "urenzon.png");)

in deze directory maken we de afbeeldingen via PHP scripts waarvan hier een eerste voorbeeld:

<?php
include("../../libs/phpgraphlib.php");
$graph = new PHPGraphLib(440,250, $filename); // PHPGraphLib(); geeft zelfde resultaat (default)
$data = array("mei"=>1.37, "juni"=>1.31, "juli"=>1.22, "aug"=>1.08, "sep"=>0.88, "okt"=>0.55, "nov"=>0.24, "dec"=>0.13);
$graph->addData($data);
$graph->setMoes("MeteoMoes");
$graph->setMoesLocation ("left");
$graph->setTitle("Zon energie");
$graph->setGradient('zon', 'maroon');
$graph->setTextColor("blue");
$graph->setBackgroundColor("achtergrond");
$graph->createGraph();
?>

We slaan het op als graph_zonenergie.php en met volgende opdracht maken we de tekening:

<img src="../afbeeldingen/graphs/graph_zonenergie.php" />


hogere pagina

PHPGraphLib met MySQL

Een beetje lastiger, we halen data op uit onze database. We maken een database maandwaarden met 12 rijen voor de 12 maanden en de volgende velden: maand, waardenr, zonenergie, windenergie, enz.
Als voorbeeld geven we enekel waarden aan waardenr en gaan deze weergeven in onze grafiek:

<?php
include("../../libs/phpgraphlib.php");
require_once("../../cgi-bin/mijn_toegang.inc.php"); // de database openen
$graph = new PHPGraphLib(440,247);
$dataArray=array();
$sql="SELECT maand, waardenr FROM maandwaarden order by maand asc";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
if ($result) {
while ($row = mysql_fetch_assoc($result)) {
$dataArray[$row["maand"]]=$row["waardenr"];
  }
}
$graph->addData($dataArray);
$graph->setMoes("MeteoMoes");
$graph->setMoesLocation ("left");
$graph->setTitle("Voorbeeld met numerieke waarden");
$graph->setGradient('lime', 'green');
$graph->setTextColor("blue");
$graph->createGraph();
?>

Opslaan als graph_mysql.php en met volgende code roepen we de grafiek op:

<img src="../afbeeldingen/graphs/graph_mysql.php" />


hogere pagina

Beschikbare kleuren

//NAMED COLORS BASED ON W3C's RECOMMENDED HTML COLORS
case 'black': return array(0,0,0); break;
case 'silver': return array(192,192,192); break;
case 'gray': return array(128,128,128); break;
case 'white': return array(255,255,255); break;
case 'maroon': return array(128,0,0); break;
case 'red': return array(255,0,0); break;
case 'purple': return array(128,0,128); break;
case 'fuscia': return array(255,0,255); break;
case 'green': return array(0,128,0); break;
case 'lime': return array(0,255,0); break;
case 'olive': return array(128,128,0); break;
case 'yellow': return array(255,255,0); break;
case 'navy': return array(0,0,128); break;
case 'blue': return array(0,0,255); break;
case 'teal': return array(0,128,128); break;
case 'aqua': return array(0,255,255); break;

kleurenbalk

//We maken ook onze eigen kleuren

case 'zon': return array(255,153,0); break;
case 'temperatuur': return array(205,24,24); break;
case 'wind': return array(0,153,0); break;
case 'neerslag': return array(51,102,255); break;
case 'luchtdruk': return array(51,204,255); break;
case 'voorspellingen': return array(24,205,24); break;
case 'achtergrond': return array(250,250,250); break;

sitekleuren


hogere pagina

Voorbeelden

We vinden nog heel wat voorbeelden op de website van Elliott

Alle beschikbare functies staan ook op deze site
We hebben twee functies toegevoegd wat toelaat om MeteoMoes op de afbeelding te plaatsen:
$graph->setMoes("MeteoMoes");
$graph->setMoesLocation ("left");