I forbindelse med mit arbejde skulle jeg bruge et værktøj til at lave nogle grafer. I stedet for at begynde at kode noget selv tænkte jeg selvfølgelig at nogen måtte være kommet mig i forkøbet. Og ganske rigtigt!
PHPGraphLib er en utrolig lækker klasse til at lave forskellige gængse grafer/diagrammer, herunder søjlediagrammer, lagkagediagrammer og kurvediagrammer). Selve scriptet er utroligt lightweight, fylder kun 2 filer, en fil til almindelige diagrammer og en til lagkagediagrammer. Disse to filer uploades til serveren og inkluderes når der skal laves grafer.
For at lave det mest simple diagram skal klassen sådan set bare fodres med et array, og det er jo nemt. Koden herunder danner et simpelt søjlediagram:
1 2 3 4 5 6 7 |
<?php
include("phpgraphlib.php");
$graph=new PHPGraphLib(500,350);
$data=array(10,20,40,30,10);
$graph->addData($data);
$graph->createGraph();
?> |
Som det ses, er det utroligt nemt, og man kan meget nemt lave noget mere avanceret diagrammer vha. PHPGraphLib udførlige dokumentation og eksempler. Herunder ses fx en statistik over antal hits på et blogindlæg
Koden til denne er også lige til at gå til:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php
include("phpgraphlib.php");
$graph=new PHPGraphLib(650,200);
$data=array();
$sql=mysql_query("select count(*) as total,substring(dato,1,10) as pd, date_format(dato,'%a - %D') as fd from martin_blogviews where blog_id=184 group by pd ORDER BY dato ASC");
while ($stat=mysql_fetch_assoc($sql)) {
$data[$stat['fd']]=$stat['total'];
}
$graph->addData($data);
$graph->setTitle("Antal hits pr dag");
$graph->setBars(false);
$graph->setLine(true);
$graph->setDataPoints(true);
$graph->setDataPointColor("maroon");
$graph->setDataValues(true);
$graph->setDataValueColor("maroon");
$graph->setGoalLineColor("red");
$graph->createGraph();
?> |
Scriptet er gratis til personligt brug, og der er selvfølgelig også mulighed for kommercielle licenser.
Ind til videre har jeg ikke fundet nogen ulemper ved dette script og det er langt nemmere at bruge end de mange andre jeg har prøvet, så kan kun varmt anbefale det.
Jeg skal prøve godt det kan bruges. Er selv blevet overordentlig glad for denne klasse, den sparer uendelige mængder af tid