Guía 42 – Creación de gráficos en el Server – JPGraph

Varias veces me han preguntado cómo incluir un gráficos en un documento (Word, Excel o PDF) y les he recomendado el uso de la librería de JPGRAPH, pero no les podía ayudar más, ya que yo no había probado a integrar dicha librería.

 

Objetivo

Disponer de un ejemplo de un gráfico de tarta 3D creado con JPGRAPH desde PHPRunner.
En el proyecto facilito todos los ejemplos que facilita el fabricante de JPGRAPH.
También, vuelvo a explicar cómo se crea el contenido de los campos de imágenes/ficheros, para después utilizar la funcionalidad de PHPRunner de visualización de las imágenes.

DEMO: https://fhumanes.com/jpgraph_runner/

Solución

La funcionalidad del aplicativo es muy simple.

Tanto en alta como en edición, sólo hay que facilitar los valores con los que se va a calcular el gráfico y cuando se vuelve a LIST, se verá el gráfico que ha calculado.

El cálculo del gráfico y el almacenado en la base de datos lo hago en el evento «After Record Added/Updated«:

include "MyCode/create_image.php";

$filename= $values['id'].".png";
$fileArray = array();
$fileArray[0]['name'] = "files/".$filename;
$fileArray[0]['usrName'] = $filename;
$fileArray[0]['size'] = filesize($file);
$fileArray[0]['type'] = "image/png";
$fileArray[0]['searchStr'] = $filename;


// Update the record
 
$data = array();
$keyvalues = array();
$data["images"] = my_json_encode($fileArray);;
$keyvalues["id"] = $values['id'];
DB::Update("test_jpgraph", $data, $keyvalues );

Y el código de crear el gráficos está en «MyCode/create_image.php«:

<?php // content="text/plain; charset=utf-8" --- example27.php
/*
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_pie.php');
require_once ('jpgraph/jpgraph_pie3d.php');
*/

use mitoteam\jpgraph\MtJpGraph;
require "jpgraph_10.2.2/autoload.php";

// load library and modules
MtJpGraph::load(['pie','pie3d']); 

$data = explode(",",$values['stringValues']); 
// $data = array(40,60,21,33);

$graph = new PieGraph(600,400);
$graph->clearTheme();
$graph->SetShadow();

$graph->title->Set("A simple Pie plot");
$graph->title->SetFont(FF_FONT1,FS_BOLD);

$p1 = new PiePlot3D($data);
$p1->SetSize(0.5);
$p1->SetCenter(0.45);

$gDateLocale = new DateLocale();

$p1->SetLegends($gDateLocale->GetShortMonth());

$graph->Add($p1);

$file = __DIR__."/../files/".$values['id'].".png";
unlink($file); // Delete file
// $graph->Stroke('example27.png');
$graph->Stroke($file);
?>

Como siempre os dejo el proyecto para que lo instaléis en vuestros Windows y cambiéis todo lo que necesitéis y para cualquier duda o lo que necesitéis, contacta conmigo en [email protected].

 

Adjuntos

Archivo Tamaño de archivo Descargas
zip PHPRunner 10.7 + Base de Datos + Ejemplos 5 MB 185

Blog personal para facilitar soporte gratuito a usuarios de React y PHPRunner