Classe gráfica JPGraph



2008-05-01

A versão 3.0 do XOOPS disponibilizará a ferramenta XoopsGraphs

É um prazer anunciar que o XOOPS 3.0 irá incluir a biblioteca JpGraph1.

JpGraph é uma biblioteca para PHP utilizada desde a versão 4.3.1 destinada a Criação de gráficos orientada a objeto. A biblioteca é completamente escrita em PHP e pronta para ser usada em qualquer script PHP (incluindo scripts CGI/APXS/CLI suportados pelo PHP). A biblioteca pode ser usada para criar vários tipos de gráficos tanto on-line quanto off-line.
JpGraph torna fácil desenhar tanto gráficos simples com um mínimo de código bem como gráficos complexos, o que exige um controle muito detalhado.



O membro Simon Roberts, também conhecido como Wishcraft, e que recentemente aderiu a equipe de desenvolvimento do XOOPS, tem trabalhado em conjunto com o DJ (outro desenvolvedor) na conversão do JpGraph para o XOOPS. O trabalho é feito especificamente para a versão 3.0 e fará parte da ferramenta GraphFactory (Fábrica de Gráficos). Com isso, os usuários do XOOPS serão capazes de criar vários gráficos, expandindo o do uso do CMS para portais de negócio ou de áreas científicas.

Você pode ver aqui a versão beta (apenas os 6 primeiros gráficos estão funcionando):
http://www.scientificcombatfighting.com/modules/graphs

Você pode fazer o download do protótipo da Fábrica de Gráficos XOOPS clicando daqui.

Gostaríamos de expressar nossos sinceros agradecimentos a Johan Persson, autor do JpGraph, pelo seu apoio ao XOOPS e também a Simon Roberts, pelo seu constante esforço, inovação e vontade de fazer o melhor pelo CMS XOOPS.

Minahito escreveu um interessante post sobre este assunto:

Will XOOPS change its license?

"XOOPS Cube project wrote a new core from a scratch and licensed the core under the modified BSD. By that, XC became able to link with many kinds of libraries. Also xoops.org may choose a change of the lisence, because they plan that XOOPS3 will contains JpGraph. JpGraph freeware edition is licensed under QPL. QPL conflicts to GPL, so GPL software can not link with QPL code like JpGraph. This is the reason why I think that XOOPS3's license will not GPL.

Now, XOOPS3 code that we can check on SVN is XoopsSphere and is lisenced under GPL. I hread that XOOPS3 is developed in Beijing, so another XOOPS3 may exist at Beijing and may be licensed under a new license different from GPL.

If XOOPS3 will change its license, I think that is better. GPL is not good for PHP freeware world, whether we agree FSF activity. GPL is great license, but, in PHP world, there are many libraries that take license conflicted to GPL. It's hard-to-use for developers who operate under PHP freeware activity."

Criando gráficos utilizando a classe JPGraph com MySQL

Autoria: Rodrigo Rosa Fragoso

Como podemos ver na dica Criando gráficos com a classe JPGraph com PHP o PHP oferece diversos recursos para criar e manipular imagens. Utilizando o recurso de manipulação de imagens podemos buscar dados de um banco e apresentá-lo na tela na forma de gráfico.

Apresentarei nesta Dica como buscar os dados no MySQL e mostrar na forma de gráfico.

Nesta dica utilizarei uma tabela denominada vendas com as seguintes colunas (codigo, cidade e valor) já com alguns dados. Estou considerando que toda a estrutura (Apache,PHP,MySQL) já esteja instalada e rodando.

Para apresentar os dados, utilizaremos como exemplo o gráfico Bar Grad 1 localizado em //jpgraph-1.19/src/Examples/bargradex1.php .

1. Include das bibliotecas da classe JPGraph.

  <?php
include ("jpgraph.php");
include ("jpgraph_bar.php");

2. Rotina para acesso e busca do dados no MySQL.

  //rotina para conexão ao banco
$hostname_https = "localhost";
$database_https = "mysql";
$username_https = "web";
$password_https = "";

$con = mysql_connect($hostname_https, $username_https, $password_https)
or trigger_error(mysql_error(),E_USER_ERROR);

mysql_select_db("projeto",$con);

$query = "SELECT * FROM vendas";
$resultado = mysql_query($query,$con);

//Este tipo de gráfico utiliza o Eixo X e Y
$datay=array(); // array com os dado do Eixo Y
$datax=array(); // array com os dado do Eixo X

$i=0;
if (mysql_num_rows($resultado))
{
while ($campo = mysql_fetch_array($resultado))
{
//Retornando os dados e armazenado nos arrays.
$datay[$i] = $campo['valor']; //dados Eixo Y
$datax[$i] = $campo['cidade']; //dados Eixo X
$i++;
}
}
// fim do select nos dados.

3. Criando e manipulando os métodos do exemplo

O código abaixo está contido no exemplo //jpgraph-1.19/src/Examples/bargradex1.php .

  // Configuração das dimensões do gráfico.
$graph = new Graph(400,200,"auto");
$graph->img->SetMargin(40,30,30,50);
$graph->SetScale("textlin");
$graph->SetMarginColor("lightblue");
$graph->SetShadow();

// Configuração do titulo do gráfico.
$graph->title->Set("Total de Vendas por Estado");
$graph->title->SetFont(FF_VERDANA,FS_NORMAL,12);
$graph->title->SetColor("darkred");

// Configuração de Font.
$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
$graph->yscale->ticks->SupressZeroLabel(false);

// Dados do --> Eixo X
$graph->xaxis->SetTickLabels($datax);
$graph->xaxis->SetLabelAngle(50);

// Dados do --> Eixo Y
$bplot = new BarPlot($datay);
$bplot->SetWidth(0.6);

// Ajuste de cor
$bplot->SetFillGradient("navy","#EEEEEE",GRAD_LEFT_REFLECTION);
$bplot->SetColor("white");
$graph->Add($bplot);

// Cria o gráfico
$graph->Stroke();

?>
//fim *.php

4. Exemplo do gráfico.

5. Saiba mais

No mais é isso, qualquer coisa me escreva.

t+

Rodrigo Rosa Fragoso <rodrigorf br (a) gmail com>

Postar um comentário