viernes, 8 de octubre de 2010

Crear gráficos con jpgraph

Jpgraph es una librería que nos permite crear gráficos en PHP y que se puede descargar desde acá.

Vamos a suponer para este ejemplo que tenemos una tabla "elementos" en la que almacenamos el nombre de los materiales y otra "entregasdiarias" en la llevamos un registro de que materiales se asignan a los empleados.

Supongamos que queremos graficar la cantidad total por cada elemento pero solo los elementos que han sido asignados al menos una vez. Este código muestra el porcentaje por elemento.

<?php
require_once("jpgraph\src\jpgraph.php");
require_once("jpgraph\src\jpgraph_pie.php");
require_once("conexion.php");

//******* GUARDAR LOS NOMBRES DE LOS ELEMENTOS EN UN VECTOR **********

$sql = "SELECT * FROM elementos";
$res = mysql_query($sql,$con);
$i=0;

while($row = mysql_fetch_assoc($res)){
$vector[$i] = $row['nombre']; //guardo los nombres de los elementos en un arreglo
$i++;
}

//*****************************************************************

$c=0;

for($f=0;$f<$i;$f++){
$sql = "SELECT * FROM `entregasdiarias` WHERE material LIKE '%".$vector[$f]."%'"; //busco cada elemento
$res = mysql_query($sql,$con);
if(mysql_num_rows($res)>0){ //verifico que exista algún elemento
$row = mysql_num_rows($res); //determino la cantidad
$datay[$c] = $row; //almaceno cada resultado en un arreglo
$c++;
}
}

mysql_close($con);

//****************************************************

#crear la grafica haciendo 2 llamadas que siempre van a ser requeridas
$graph = new PieGraph($c*60,$c*48,'auto'); //dimensiones ancho,alto
$graph->SetScale('textlin');

$graph->SetShadow(); //adherir sombra
$bplot = new PiePlot($datay); //crear la barra
$bplot->SetLegends($vector); //leyenda
$bplot->SetCenter(0.32);

$graph->Add($bplot); //añadimos el bplot a la grafica

#configurar los titulos
$graph->title->Set("Cantidad de elementos asignados"); //titulo del grafico
$graph->xaxis->title->Set('Elementos'); //titulo para el eje x
$graph->yaxis->title->Set('Cantidad'); //titulo para el eje y

$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);

$graph->stroke(); //mostrar la grafica
?>


0 comentarios:

Publicar un comentario