underpop

http://underpop.online.fr 2008-05-01  

Classe gráfica JPGraph


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

alt="" align="left" />

É um prazer anunciar que o XOOPS 3.0 irá incluir a "http://www.aditus.nu/jpgraph/">biblioteca JpGraph "printOnly">1.



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.



alt="" align="middle" />



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">http://www.scientificcombatfighting.com/modules/graphs




Você pode fazer o download do protótipo da Fábrica de Gráficos
XOOPS "http://bin.chronolabs.org.au/xoops3.0_graphing_prototype.rar">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:



"http://sunday-lab.blogspot.com/2008/04/will-xoops-change-its-license.html">
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 "http://www.xoops.org/modules/news/article.php?storyid=4219">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, "font-weight:bold;">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: "mailto:rodrigorf.br@gmail.com">Rodrigo Rosa Fragoso



Como podemos ver na dica "http://www.dicas-l.com.br/dicas-l/20051201.php">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.



alt="" align="middle" border="0" />



5. Saiba mais




No mais é isso, qualquer coisa me escreva.



t+



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


Marcadores: , , , ,