junio 16, 2009 4

Gráficos en PHP con JpGraph. Parte I

By in Librerías, PHP

JpGraph es una librería que nos permite generar gráficos mediante PHP, de una forma realmente sencilla y bajo nuestro total control. Sus principales características son:

  • Detecta automáticamente que versión del GD.
  • Permite insertar texto a los gráficos y soporte para tipos de letra.
  • Niveles de transparencia.
  • Posibilidad de generar complejos gráficos de Gantt.
  • Manejo de las escalas para los ejes del gráfico.
  • Soporta varios formatos de imágenes: PNG, GIF y JPG.
  • Permite generar gráficas de barras horizontales.
  • Soporte para gráficas de tipo científico.
  • Soporte para generación de escala automática, dependiendo de los datos.
  • Soporta para distintos tipos de relleno para las gráficas.
  • Una excelente documentación.

Vamos a ver un par de ejemplos.

Generación de un gráfico de lineas

Lo primero que vamos a ver es como generar un gráfico de lineas:

<?php
// Evita que se vean los errores
error_reporting(0);
include("include/jpgraph.php");
include("include/jpgraph_line.php");
//Array con los datos del gráfico
$datos = array(9, 5, 12, 11, 6, 10, 9, 11, 10, 4, 7, 3);
// Clase que genera el gráfico de tamaño 400x300
$grafico = new Graph(400, 300, "auto");
$grafico->SetScale("textlin");
// Creamos un juego de datos, del tipo linea
$lineplot = new LinePlot($datos);
$lineplot->SetColor("red");
// Añadimos el juego de datos
$grafico->Add($lineplot);
// Generamos el gráfico
$grafico->Stroke();
?>

Este gráfico quedaría de la siguiente forma:

Primer ejemplo con JpGraph

Podemos tener también varios juegos de datos:

<?php
// Evita que se vean los errores
error_reporting(0);
include("include/jpgraph.php");
include("include/jpgraph_line.php");
$datos1 = array(9, 5, 12, 11, 6, 10, 9, 11, 10, 4, 7, 3);
$datos2 = array(5, 7, 1, 11, 13, 4, 9, 6, 12, 7, 1, 4);
$grafico = new Graph(400, 300, "auto");
$grafico->SetScale("textlin");
$lineplot1 = new LinePlot($datos1);
$lineplot1->SetColor("red");
$lineplot2 = new LinePlot($datos2);
$lineplot2->SetColor("green");
$grafico->Add($lineplot1);
$grafico->Add($lineplot2);
$grafico->Stroke();
?>
<

Este gráfico quedaría de la siguiente manera:

Segundo ejemplo con JpGraph

Podemos además añadir texto al gráfico:

<?php
// Evita que se vean los errores
error_reporting(0);
include("include/jpgraph.php");
include("include/jpgraph_line.php");
$datos1 = array(9, 5, 12, 11, 6, 10, 9, 11, 10, 4, 7, 3);
$datos2 = array(5, 7, 1, 11, 13, 4, 9, 6, 12, 7, 1, 4);
$grafico = new Graph(400, 300, "auto");
$grafico->SetScale("textlin");
// Titulo del gráfico
$grafico->title->Set("Ejemplo JpGraph");
// Etiqueta para el eje X
$grafico->xaxis->title->Set("Eje X");
// Etiqueta para el eje Y
$grafico->yaxis->title->Set("Eje Y");
$lineplot1 = new LinePlot($datos1);
$lineplot1->SetColor("red");
$lineplot2 = new LinePlot($datos2);
$lineplot2->SetColor("green");
$grafico->Add($lineplot1);
$grafico->Add($lineplot2);
$grafico->Stroke();
?>

Esta vez el gráfico nos quedaría de la siguiente forma:

Tercer ejemplo con JpGraph

Como se puede ver es bastante sencillo e intuitivo. Pero con esto basta por hoy, en próximos días veremos otros tipos de gráficos y como personalizar estos mucho más.

Y para finalizar los archivos con los ejemplos (no incluye JpGraph, que hay que meterlo en una carpeta llamada include):

Ejemplos con JpGraph. Parte I.

ACTUALIZACIÓN 2012-12-05

Se ha añadido al código una linea de código que desactiva el reporte de errores de PHP. Esto se debe a que la versión de jpGraph para PHP 4 produce errores en versiones de PHP 5, que provocan que las imágenes generadas no se vean bien.

Todos los ejemplos de este artículo y de los demás artículos sobre jpGraph los podéis encontrar en gitHub, en el siguiente repositorio:

https://github.com/mjcarrascosa/jpGraphDemo

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , ,

4 Responses to “Gráficos en PHP con JpGraph. Parte I”

  1. Sergio dice:

    Hola, los ejemplos no se ven.

  2. Ya se ven, era un problema con la notificación de errores de PHP. Hasta hace un rato no he podido mirarlo.

  3. Paula dice:

    Hola, necesito ayuda, logro graficar de forma dinámica sin problemas, pero quiero poder inicializar el eje de las x en 1, pues me sale inicializado en cero, por fa ayúdenme, todos los ejemplos que me topo en internet empiezan en 1 pero nadie dice como.

  4. lis dice:

    Como puedo agregar etiquetas en esos graficos?? podrias ayudarme pls

Leave a Reply