Como crear graficas de barras con PHP y JpGraph

Hola, en el post anterior había puesto algunas librerías para generar gráficas, y en esta ocasión toca el turno ver algunos ejemplos para crear gráficas con la librería JpGraph.

Sitio: JpGraph

Enlaces de Descarga y documentacion, la documentacion de esta libreria esta en linea, pero tambien se incluye en el archivo de descarga.

Comenzemos.

Lo primero que tenemos que hacer es incluir el archivo jpgraph.php y el archivo para el tipo de grafica que vamos a crear, despues crear el grafico y definir los margenes.

require_once 'jpgraph/jpgraph.php'

//para una grafica de barras
require_once 'jpgraph/jpgraph_bar.php';

//para una grafica circular
require_once 'jpgraph/jpgraph_pie.php';

//para una grafica de lineas
require_once 'jpgraph/jpgraph_line.php';

// define una grafica de 500 x 400
$grafica = new Graph(500, 400);

//define el margen de la grafica
$grafica->img->SetMargin(50,40,20,0);

Todas las instrucciones anteriores son comunes para todos los graficos, ahora veamos un ejemplo completo.

Ejemplo: Grafica de barras.

require_once 'jpgraph/jpgraph.php';
require_once 'jpgraph/jpgraph_bar.php';

$grafica = new Graph(500, 400);
$grafica->img->SetMargin(50,40,20,0);

/*Define el tipo de escala que va a utilizar y el
valor minimo y maximo para el eje y*/
$grafica->SetScale("textlin", 0, 60);

// Asigna el titulo de la gráfica
$grafica->title->Set("Estadísticas del tiempo");

// Asigna el titulo y la alineacion para el eje x
$grafica->xaxis->SetTitle("Dias","middle");

//Asigna el titulo y la alineacion para el eje y
$grafica->yaxis->SetTitle("Grados centigrados","middle");

//Define una serie, en este caso para un grafico de barras
$temperaturas = new BarPlot( array(25,29,26,28,30,29,24) );

//Asigna la leyenda para la serie
$temperaturas->SetLegend('Temperatura');

//agrega la serie temperatura al grafico
$grafica->Add($temperaturas);

//Muestra el grafico
$grafica->Stroke();

El codigo genera el siguiente  grafico.

Ejemplo: Gráfica de barras agrupada.

require_once 'jpgraph/jpgraph.php';
require_once 'jpgraph/jpgraph_bar.php';

$grafica = new Graph(500, 400);
$grafica->img->SetMargin(50,40,20,0);

$grafica->SetScale("textlin", 5, 10);

//Asigna el titulo al grafico
$grafica->title->Set("Calificaciones");

//Asigna el titulo al eje x
$grafica->xaxis->SetTitle("Alumnos");

//Asigna el titulo y alineacion al eje y
$grafica->yaxis->SetTitle("Calificaciones","middle");

//Asigna las etiquetas para los valores del eje x
$grafica->xaxis->SetTickLabels(array("Ana","Sonia","Sebastian","Joel"));

//crea una serie para un grafico de barras
$fisica = new BarPlot(array(9,8,10,9));

//asigna la leyenda para la serie fisica
$fisica->SetLegend("Fisica");

//asigna el color de relleno de las barras en formato hexadecimal
$fisica->SetFillColor("#E234A9");

//crea una serie para el grafico de barras
$matematicas = new BarPlot(array(8,10,9,10));

//asigna la leyenda para la serie matematicas
$matematicas->SetLegend("Matematicas");

//asigna el color de relleno de las barras con el nombre del color
$matematicas->SetFillColor("blue");

//crea una serie para el grafico de barras
$quimica = new BarPlot(array(10,9,9,8));

//asigna la leyenda para la serie quimica
$quimica->SetLegend("Quimica");

/*asigna el color de relleno de las barras, en este caso un relleno
degradado vertical que va de naranja a rojo, los tipos de degradado
los encuentras en la documentación*/
$quimica->SetFillgradient('orange','red',GRAD_VER); 

// agrupa las series del grafico
$materias = new GroupBarPlot(array($fisica,$matematicas,$quimica));

//agrega al grafico el grupo de series
$grafica->Add($materias);

//muestra el grafico
$grafica->Stroke();

El código genera el siguiente grafico

Suerte y sigue practicando.

3 comentarios en “Como crear graficas de barras con PHP y JpGraph”

  1. CAMILO dice:

    QUIERO CODIGOS POR FAAVOR

  2. jose luis avendaño dice:

    excelente aportación felicidades..

Deja un comentario