Criando gráficos com a classe JPGraph (parte 1)

A linguagem PHP nos oferece uma infinidade de recursos para criar e manipular imagens, porém criar uma imagem de estrutura mais complexa pode ser uma tarefa bastante dolorosa. Para nossa sorte existem classes PHP de terceiros que facilitam nossa vida e é sobre isso que vamos falar nesse artigo. Seremos apresentados à classe JPGraph da PHP, usada para criar quaisquer tipo de gráfico imaginável.

[ Hits: 146.142 ]

Por: Fábio Berbert de Paula em 14/11/2002 | Blog: https://www.instagram.com/alexabolada/


Sofisticando o seu gráfico de barras



Agora que estamos aptos à criar nosso primeiro gráfico de barras,vamos sofisticar nosso gráfico com alguns add-ons como o nome dos dias da semana, label dos vértices, etc. Vamos aproveitar o primeiro exemplo adicionando novas linhas e comentando-as.

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

$numGols = array ("8", "7", "12", "10", "7", "9", "11");
// definir dias da semana
$diasSemana = array("Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb");

$grafico = new graph(350,200,"png");

// margem das partes principais do gráfico (dados), o que está
// fora da margem fica separado para as labels, títulos, etc
$grafico->img->SetMargin(40,40,40,40);

$grafico->SetScale("textlin");
$grafico->SetShadow();

$grafico->title->Set('Viva o Linux Futebol Clube');
// definir sub-titulo
$grafico->subtitle->Set('www.vivaolinux.com.br');

// pedir para mostrar os grides no fundo do gráfico,
// o ygrid é marcado como true por padrão
$grafico->ygrid->Show(true);
$grafico->xgrid->Show(true);

$gBarras = new BarPlot($numGols);
$gBarras->SetFillColor("orange");
$gBarras->SetShadow("darkblue");

// título dos vértices
$grafico->yaxis->title->Set("Gols");
$grafico->xaxis->title->Set("Dia da semana");
// título das barras
$grafico->xaxis->SetTickLabels($diasSemana);


$grafico->Add($gBarras);
$grafico->Stroke();
?>


Figura 03 - gráfico de barras sofisticado



Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Obtendo e instalando a classe jpgraph
   3. Criando gráfico de barras
   4. Sofisticando o seu gráfico de barras
   5. Gráfico de barras agrupado
Outros artigos deste autor

Controlando projetos com o fantástico CVS

Torne-se um DJ usando Linux

Criando um contador de downloads com PHP e MySQL

Criando seu próprio servidor de DNS dinâmico (nsupdate + bind9)

Mais uma política "suja" de marketing da Microsoft

Leitura recomendada

PHP >= 5.1 x horário de verão brasileiro

Criando sites para celular com WML

Criando Virtual Host no Apache: simples assim

Tags automáticas em URLs com a classe urlmatch da PHP

PEAR - Utilizando classes prontas e documentadas no PHP

  
Comentários
[1] Comentário enviado por segan em 24/10/2003 - 14:15h

Hello!!
Sorry for speak in English but the different meanings between words in Spahis and Portugues its a very long....

My comment is:
I download Jpgraph-1.10.1 and first i try to install in the Path but not work....
Later I try to put the directory /src in my scripts but ever appears that error:

Fatal error: No parent class available in this context in /var/www/html/graficos/src/jpgraph.php on line 1936

Im so very satisfacted an any help!!!


[2] Comentário enviado por atilazip em 05/04/2004 - 15:24h

Parabéns!

Li seu artigo sobre jpgraph e descobri na procura sobre o assunto que cerca de 80% dos site nacionais que tratam do assunto direcionavam seus link para seu artigo. Isso mostra um belo reconhecimento do seu trabalho então da minha parte

Parabéns outra vez.

[3] Comentário enviado por gatecrasher em 28/05/2004 - 12:55h

Fabio,
parabens pelo artigo.

Tentei algo assim:

$consulta_acesso_segunda=@mysql_query("SELECT * FROM tb_acesso WHERE tb_acesso.dia_da_semana LIKE 'seg%' ;");

$numero_acesso_segunda=@mysql_num_rows($consulta_acesso_segunda);


// na construcao eixo x por exemplo

$dados_barra = array($numero_acesso_segunda,etc,etc,etc,etc);

A classe JGraph emite erro e so aceita constantes no array.

Pergunta: eh possivel construir graficos a partir do numero de registros de um banco de dados?

[4] Comentário enviado por drikafernandes em 31/05/2004 - 11:19h

Olá, gostaria de saber se toda essa informação também funciona em ambiente Windows...
Eu utilizo WinME, PWS, PHP4.3.6, GD2...

Obrigada
Drika Fernandes
webmaster@tecsite.com.br

[5] Comentário enviado por slslig em 15/06/2004 - 12:02h

Olá , não consegui fazer funcionar já no primeiro exemplo, sou iniciante em php e uso o Easyphp 1.7 em ambiente windows.
Pode me dar uma dica ???
Fatal error: Call to undefined function: imagecreate() in c:\program files\easyphp1-7\www\graficos\graf1.php on line 10

sergio
slslig@ig.com.br

[6] Comentário enviado por lopan em 26/07/2004 - 13:54h

Olá!

O script que vc colcou na introdução, foi gerado perfeitamente, mas o outro, deu o seguinte erro!

JpGraph Error: Can't create truecolor image. Check that you really have GD2 library installed.

Sendo que o GD2 está instalado, já tentei de todas as formas corrigir, mas não consigo, estou tentando instalar o JpGraph para utilização com o phpPrintAnalyzer (Analisador de Logs do CUPS), mas a documentação é pouca, o phpPrintAnalyzer mesmo não há complicação, já o JpGraph, poxa, não tem ninguém na net tradando sobre este erro.

Eu estou com:
Red Hat 8
PHP 4.2.2
GD2 2.0.28

Se alguém já passou por este problema, por favor... Compartilhe a solução!

[7] Comentário enviado por alexjfalcao em 05/10/2004 - 16:27h

no arquivo jpg-config.inc edite as linhas para:

DEFINE("USE_TRUECOLOR",false);
DEFINE("USE_LIBRARY_GD2",false);

Funciona, mas várias funções não rolam, voce precisa adaptar seus gráficos.

abraço

[8] Comentário enviado por luis_ag em 22/11/2004 - 17:32h

Caro Fábio

Em primeiro lugar, parabéns pelo artigo.

Assim como nosso amigo Sérgio, eu também estou iniciando em PHP e também não consegui passar do seu exemplo mais simples.

utilizei seu código:
<?
header ("Content-type: image/png");
$imagem = imagecreate (150, 100);
$corFundo = imagecolorallocate ($imagem, 255, 255, 200);
$corLinha = imagecolorallocate ($imagem, 0, 0, 0);
imageline ($imagem, 10, 90, 140, 10, $corLinha);
imagepng ($imagem);
?>

e obtive o seguinte erro:
Fatal error: Call to undefined function: imagecreate() in C:\Inetpub\wwwroot\exemplo0_Temp.php on line 3

Sou usuário do Windows, IIS5, PHP4 e possuo as bibliotecas do jpgraph.

O que eu estou fazendo de errado? é alguma configuração?

Desde já agradeço sua ajuda,

Obrigado

Luis
luis_ag10@hotmail.com

[9] Comentário enviado por leonardocdc em 06/12/2004 - 15:42h

Fabio,
muito legal esse artigo.

Mas no caso deu usar o gráfico de barras, no eixo x eu quero colocar as porcentagens de 0% à 100%. Tem algum lugar lá que define isso?
Tipo o tamanho do intervalo, Pq lá está de 2 em 2.

Obrigado

[10] Comentário enviado por ricky578 em 06/03/2005 - 01:39h

Olá Fábio,

Utilizei seu script em um linux Redhat9 e também em um Suse já com a classe JPGRAPH instalada e em ambos só consegui obter uma página em branco como resultado. O que pode estar ocorrendo? Poderia me ajudar?

Ricardo
rruggiero@globo.com

[11] Comentário enviado por darkshakal em 14/06/2006 - 15:33h

muito bom

[12] Comentário enviado por filtis em 31/08/2006 - 15:35h

Ola, fiz a instalação td certo e talz... fiz um exemplo, mais na hora q eu fui testar apareceu esta mensagem:
"Internal error: Chosen locale file for error messages does not exist."
Alguem poderia me ajudar???

[13] Comentário enviado por agostinho_jr em 19/09/2006 - 23:51h

Amigo, como faço pra setar um valor fixo para o eixo y?
Abraço.
Que Deus abençoe,
Agostinho Jr.

[14] Comentário enviado por pedrodee em 13/03/2007 - 14:50h

Ola!
Será que alguem resolveu o problema dos labels dos gráficos não mostrarem os caracteres correctamente?
Por exemplo Português, o 'ê' aparece estranho.
Alguém pode ajudar?

Abraço

[15] Comentário enviado por gzanatta00 em 31/05/2007 - 21:33h

na minha maquina ta dando o seguinte erro

JpGraph Error Your PHP installation does not seem to have the required GD 2.x library enabled. Please see the PHP documentation, "Image" section. Make sure that "php_gd2.dll" statement is uncomment in the [modules] section in the php.ini file.


acho q ta faltando o GD2, como q eu instalo

[16] Comentário enviado por enrikest em 03/09/2007 - 13:03h

Ola, testei o exemplo do grafico de barras agrupados e o mesmo deu o erro JPGRAPH ERROR:

One of Objects submited to GroupBar is not a BarPlot. Make sure that you creat the Group Bar plot from an array of Barplot or AccBarplot objects.

Alguem saberia me dizer o pq disso??? o exemplo esta IDENTICO o meu nao mudei nada no codigo.

Obrigado.

[17] Comentário enviado por marciarf em 05/09/2007 - 10:22h

d

[18] Comentário enviado por marciarf em 05/09/2007 - 10:24h

Olá
Estou tentando usar o pacote de instalação wamp5 com a classe jpgraph, mas sempre da erro relativo a instalação da biblioteca gd2. Ela está no php.ini, portanto acho que deve ter outro lugar para eu saber se realmente está instalada e habilitada. Você poderia me ajudar dizendo onde devo observar pra assegurar que realmente está isntalada?
Obrigada

[19] Comentário enviado por alexvc.com em 18/10/2007 - 22:41h

Estou com o mesmo problema do colega de cima, naum consigo instlar no wamp5, já fui lá no php.ini e descomentei linha referente ao gd2, porem o erro ainda persiste....

[20] Comentário enviado por comfaa em 28/10/2008 - 12:59h

muito legal !!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts