Evilnapsis

Programming, Hacking and More

PHP Stuffs

Crear Gráfica de LIneas con la libreria JpGraph en PHP

La libreria JpGraph nos permite crear gráficas de todo tipo, de lineas, de barras, scatter, impulso, Polar y muchas mas, usando PHP y exportando el resultado directo a un archivo JPG o PNG.

Hasta ahora siempre hemos visto librerías para crear gráficas con Javascript, pero ahora con esta librería ya podremos crear gráficas con código PHP y exportar directo el archivo de imagen para colocarlo en un archivo PDF, Word, Etc.

La libraría JpGraph es una librería gratis para uso personal, para uso comercial es necesario comprar una licencia, ademas la versión pro tiene mas gráficas y opciones.

La libreria JpGraph ademas de contar con multiples tipos de grafica, tambien cuenta con muchas opciones de personalizacion de graficas, poner color de fondo, imagenes de fondo, lineas, puntos personalizados, y mucho mas que hay que explorar.

Para descargar la libreria JpGraph debes ir a la pagina oficial, ahi tambein encontraras mucha documentacion.

Pagina de JpgGraph

Código

El código fuente es el siguiente, le agregue comentarios al código para que sea mas facil de entender cada linea.

<?php 
require_once ('jpgraph/src/jpgraph.php');
require_once ('jpgraph/src/jpgraph_line.php');

$datay1 = array(100,500,200,600);

// Configurar la grafica
$graph = new Graph(960,540); // medidas de la Imagen de la grafica
$graph->SetScale("textlin");

// Asignar el tema
$theme_class=new UniversalTheme;
$graph->SetTheme($theme_class);
$graph->img->SetAntiAliasing(false);
$graph->title->Set('Grafica de Ejemplo en JpGraph'); // Titulo de la Grafica
$graph->SetBox(false);

$graph->SetMargin(50,50,50,50); // Margen alrededor de la grafica

$graph->img->SetAntiAliasing();

//// Mostrar micro divisiones en el eje Y
$graph->yaxis->HideZeroLabel(false);
$graph->yaxis->HideLine(false);
$graph->yaxis->HideTicks(false,false);

$graph->xgrid->Show(); // Lineas del eje X
$graph->xgrid->SetLineStyle("solid"); // Color de las lineas del eje X
$graph->xaxis->SetTickLabels(array('A','B','C','D')); // Valores en el eje X

// Crear la primera linea o serie
$p1 = new LinePlot($datay1);

$graph->Add($p1);

$p1->value->Show(); // mostrar valores
$p1->value->SetColor("black","darkred");  // Color de los valores que se muestran
$p1->value->SetFormat('%01.2f');   // Formato de los valores que se muestran


$p1->SetColor("#6495ED"); // Color de la linea de la grafica
$p1->SetLegend('Ventas'); // leyenda de la linea de la grafica
$p1->mark->SetType(MARK_FILLEDCIRCLE,'',1.0);
$p1->mark->SetColor('#000');
$p1->mark->SetFillColor('#000');

$graph->legend->SetFrameWeight(1); // Borde del marco de la leyenda

// Salida de la grafica
$graph->Stroke();
// $graph->Stroke(archivo.jpg);

?>

Y listo.

Este es el resultado del codigo.

Descargar

A continuación puedes descargar el ejemplo completo + la libreria jpgraph.

Link: https://drive.google.com/file/d/17mN8V1CQc7aYquTwdZMtFXMuhrXRsQAR/view

Agustin Ramos

Desarrollador de Software