Posts Tagged ‘Generar gráficos’

junio 20, 2009 1

Gráficos en PHP con JpGraph. Parte III.

By in Librerías, PHP

En las dos anteriores entregas de este tutorial hemos visto como crear gráficos de lineas y gráficos de barras. Hoy les toca el turno a los gráficos de tarta. La forma de trabajar con ellos es muy parecida a los vistos anteriormente. Veamos un ejemplo:

<?php
// Evita que se vean los errores
error_reporting(0);
include("include/jpgraph.php");
include("include/jpgraph_pie.php");
$datos = array(9, 5, 12, 11, 6);
$grafico = new PieGraph(400, 300, "auto");
$grafico->SetScale("textlin");
$pieplot = new PiePlot($datos);
$grafico->Add($pieplot);
$grafico->Stroke();
?>

Y el resultado final es:

Séptimo ejemplo con JpGraph

Si analizamos el código podemos ver que en este caso usamos la clase PieGraph en lugar de la Graph y que los datos se pintan con la clase PiePlot. También, al ver el resultado, nos damos cuenta que los resultados los muestra como porcentajes.

La clase PiePlot provee de varios métodos para controlar la forma en la que se pinta el resultado. Vamos a ver algunos de esoso métodos:

Método Parámetros Descripción
SetColor $color: Color de la linea. Color de la linea que rodea los trozos de tarta.
SetSlicesColors $aColors: Array con colores Para indicar el color de cada uno de los trozos.
Explode $aExplodeArr: Array con los radios de énfasis. Permite enfatizar los pedazos indicándole un radio de separación del centro. Para ello se le pasa un array con los radios a los que se enfatiza cada elemento.
ExplodeAll $radius: Radio del énfasis. Aleja todas las porciones del centro en un radio dado.
ExplodeSice $e: Elemento a alejar.
$radius: Radio de alejamiento
Permite alejar un único pedazo.

Veamos un ejemplo usando alguno de estos métodos:

<?php
// Evita que se vean los errores
error_reporting(0);
include("include/jpgraph.php");
include("include/jpgraph_pie.php");
$datos = array(9, 5, 12, 11, 6);
$grafico = new PieGraph(400, 300, "auto");
$grafico->SetScale("textlin");
$pieplot = new PiePlot($datos);
$pieplot->SetSliceColors(array("red", "green", "blue", "yellow", "white"));
$pieplot->ExplodeSlice(1, 25);
$grafico->Add($pieplot);
$grafico->Stroke();
?>

El resultado sería el siguiente:

Octavo ejemplo con JpGraph

Con esto termina la tercera parte del tutorial. En el siguiente tutorial seguiremos viendo los gráficos de tarta para ver algunas opciones más avanzadas.

Y ahora los archivos con los ejemplos (no incluye la librería):

Ejemplos con JpGraph. Parte III.

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: , , , ,

junio 18, 2009 11

Gráficos en PHP con JpGraph. Parte II.

By in Librerías, PHP

Hoy vamos a ver como crear gráficos de barras. Empecemos con un sencillo ejemplo:

<?php
// Evita que se vean los errores
error_reporting(0);
include("include/jpgraph.php");
include("include/jpgraph_bar.php");
$datos1 = array(9, 5, 12, 11, 6, 10, 9, 11, 10, 4, 7, 3);
$grafico = new Graph(400, 300, "auto");
$grafico->SetScale("textlin");
$grafico->title->Set("Ejemplo JpGraph");
$grafico->xaxis->title->Set("Eje X");
$grafico->yaxis->title->Set("Eje Y");
$barplot1 = new BarPlot($datos1);
$barplot1->SetColor("red");
$barplot1->SetFillColor("red");
$grafico->Add($barplot1);
$grafico->Stroke();
?>

El gráfico quedaría tal cual:

Cuarto ejemplo con JpGraph

En este caso hemos usado la clase BarPlot, en lugar de la LinePlot de los anteriores ejemplos, para generar el gráfico de barras. En esta ocasión vemos que se llama a un método de la clase BarPlot llamado SetFillColor. Este método se usa para asignar el color de fondo de las barras. Existe otro método llamado SetFillGradient que nos permite realizar el relleno de las barras mediante un gradiente. Podemos también controlar el ancho de las barras con el método SetWidth. Vamos a ver esto último con un ejemplo:

<?php
// Evita que se vean los errores
error_reporting(0);
include("include/jpgraph.php");
include("include/jpgraph_bar.php");
$datos1 = array(9, 5, 12, 11, 6, 10, 9, 11, 10, 4, 7, 3);
$grafico = new Graph(400, 300, "auto");
$grafico->SetScale("textlin");
$grafico->title->Set("Ejemplo JpGraph");
$grafico->xaxis->title->Set("Eje X");
$grafico->yaxis->title->Set("Eje Y");
$barplot1 = new BarPlot($datos1);
$barplot1->SetColor("red");
// Un gradiente Horizontal de rojo a azul
$barplot1->SetFillGradient("red", "blue", GRAD_HOR);
// 25 pixeles de ancho para cada barra
$barplot1->SetWidth(25);
$grafico->Add($barplot1);
$grafico->Stroke();
?>

El gráfico sería:

Quinto ejemplo con JpGraph

También podemos combinar gráficos, como por ejemplo uno de barras con uno de lineas, como en el ejemplo siguiente:

<?php
// Evita que se vean los errores
error_reporting(0);
include("include/jpgraph.php");
include("include/jpgraph_bar.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");
$grafico->title->Set("Ejemplo JpGraph");
$grafico->xaxis->title->Set("Eje X");
$grafico->yaxis->title->Set("Eje Y");
$barplot1 = new BarPlot($datos1);
$barplot1->SetColor("red");
// Un gradiente Horizontal de rojo a azul
$barplot1->SetFillGradient("red", "blue", GRAD_HOR);
// 25 pixeles de ancho para cada barra
$barplot1->SetWidth(25);
$lineplot = new LinePlot($datos2);
$lineplot->SetColor("green");
$lineplot->SetWeight(2);
$grafico->Add($barplot1);
$grafico->Add($lineplot);
$grafico->Stroke();
?>

Que quedaría de la siguiente manera:

Sexto ejemplo con JpGraph

Con esto es todo por hoy. Para finalizar y por no faltar a la costumbre os dejo aquí los archivos con los ejemplos del artículo:

Ejemplos con JpGraph. Parte II.

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: , , , ,

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: , ,