Home / Programmazione / PHP / Creare grafici in PHP con PHPGraphLib
Mattepuffo

Creare grafici in PHP con PHPGraphLib

Creare grafici in PHP con PHPGraphLib

Per creare grafici in PHP ci sono diverse librerie da poter usare.

Io per ora mi sono trovatp abbastanza bene con PHPGraphLib.

Vediamo come usare questa libreria.

Prima di tutto scaricatela da qua.

La struttura da dare in pasto al grafico è un array di questo tipo:

$data=array("Jan"=>1324, "Feb"=>1200, "Mar"=>100, "Apr"=>1925, "May"=>1444, "Jun"=>-10, "Jul"=>364, "Aug"=>221, "Sep"=>-30, "Oct"=>848, "Nov"=>719, "Dec"=>114);

Ovviamente vi farò un esempio estrapolando i dati da MySQL che è di sicuro quello che volete.

Create una pagina per rappresentare i dati; la mia è grafici.html:

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<img src="graph.php" />
</body>
</html>

PHPGraphLib crea una immagine e quindi possiamo impostare come source il php dove metteremo tutto il codice.

 

Poi create una pagina graph.php con questo dentro:

<?php

include_once 'lib/config.php';
$config = Config::getInstance();

function selectUscite() {
global $config;
try {
$sth = $config->getPdo()->prepare("SELECT * FROM uscite_view");
$sth->execute();
$result = $sth->fetchAll();
return $result;
} catch (PDOException $e) {
echo '<script type="text/javascript">alert("' . $e->getMessage() . '");</script>';
die();
}
}

include 'lib/phpgraphlib.php';
$graph = new PHPGraphLib(500, 500);
$data = array();
foreach (selectUscite() as $var) {
$data[$var['causale_nome']]++;
}

$graph->addData($data);
$graph->setTitle("Grafico uscite");
$graph->setTextColor("red");
$graph->createGraph();

Per la connessione uso PDO; ne ho parlato varie volte e qui potete trovare un esempio.

La funzione selectUscite() mi interroga il database usando un prepare statement di PDO e fecthAll.

Dopo includiamo la libreria e istanziamo un oggetto PHPGraphLib dandogli le dimensioni della immagine.

La variabile $data è l'array che conterrà i nostri dati e la riempiamo nel foreach.

Poi sotto aggiungiamo $data al grafico e settiamo alcune opzioni (in questo caso il titolo del grafico e il colore del testo).

Ci sono parecchie altre opzioni da poter settare; ad esempio:

$graph->setGrid(false); //con false nasconse la griglia di default è true

$graph->setBackgroundColor("black"); //imposta il colore di sfondo

$graph->setLine(true); //con true mostra una linea che unisce i valori delle ordinate di default è impostato a false

$graph->setLineColor("yellow"); //imposta il colore della linea appena descritta

$graph->setDataPoints(true);//con true mostra dei pallini in corrispondenza dei valori

$graph->setDataPointColor("yellow");//imposta il colore dei pallini appena descritti

$graph->setBars(false);//con false nasconde le barre

$graph->setGoalLine(0,0025);//mostra una linea orizzontale in corrispondenza del valore indicato

$graph->setGoalLineColor("red");//imposta il colore di questa linea

La libreria è molto completa, e permette anche di aggiungere più array al grafico.