Archivo por días: 12 junio 2008

Gráficas en php con jpgraph

Para crear gráficas en php no he encontrado mejor herramienta que jpgraph. Es gratuito si no se usa comercialmente y su uso es muy sencillo.

Tiene muchos tipos de gráficas para representar datos y se instala fácilmente en cualquier servidor: Copiando la carpeta src en el servidor web, renombrándola a jpgraph y luego simplemente enlanzando dentro de nuestro script php las librerías.

Así por ejemplo podemos crear un gráfico simple con unos datos sobre la renta per cápita de distintos países:

Para generar este gráfico hay que seguir estos pasos:

Incluir las librerias (la ruta dependerá de donde las hayamos copiado):


include ("../../jpgraph/jpgraph.php");
include ("../../jpgraph/jpgraph_bar.php");

Creamos dos arrays con los datos que se van a representar (eje x e y):


$datax = array("Alemania", "España", "Francia", "Italia", "Reino Unido");
$datay = array(43267, 22368, 37644, 32949, 39762);

Creamos el objeto del gráfico de un tamaño de 500px * 200px y establecemos que el eje x es texto y el eje y es numérico:


$graph = new Graph(500,200,"auto");
$graph->SetScale("textlin");

Establecemos los márgenes del gráfico y le añadimos una sombra por detrás:


$graph->img->SetMargin(50,100,20,40);
$graph->SetShadow();

Creamos un objeto de gráfica de barras, decimos que su color sea naranja, que se muestre la leyenda y que añada esa gráfica al objeto general.


$barra = new BarPlot($datay);
$barra->SetFillColor("orange");
$barra->SetLegend("Euros");
$graph->Add($barra);

Le añadimos un título al gráfico y otro a uno de los ejes, poniendo ambos en negrita:


$graph->title->Set("Renta per cápita");
$graph->xaxis->title->Set("Países");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

Añadimos el texto del eje x y finalmente lo mostramos:


$graph->xaxis->SetTickLabels($datax);
$graph->Stroke();