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: 144.416 ]

Por: Fábio Berbert de Paula em 14/11/2002 | Blog: https://youtube.com/c/cotidianohackeado


Introdução



A linguagem PHP, quando utilizada em conjunto com a biblioteca GD nos oferece uma infinidade de recursos para criar e manipular imagens,sendo possível criar desenhos vetoriais, thumbnails, manipular imagens prontas, dentre outros.

O código abaixo cria uma imagem de 150x100 pixels com o fundo em tonalidade amarela e desenha uma linha preta cortando o gráfico:
<?
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);
?>


Figura 01

Como pode-se notar, os comandos são relativamente intuitivos, porém criar uma imagem de estrutura mais complexa pode ser uma tarefa bastante dolorosa.Imagine criar um sofisticado gráfico de pizza a partir do zero ? Para nossa sorte existem classes PHP de terceiros que facilitam nossa vida e é sobre isso que vou falar nesse artigo. Hoje seremos apresentados à classe jpgraph da PHP, usada para criar quaisquer tipo de gráfico imaginável.

    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

Implementando um tradutor de línguas no seu web site

MP3 no Linux

Expressões Regulares - Entenda o que são Lookahead e Lookbehind

Fazendo seu Linux falar com espeak

Root no Samsung Galaxy S3 usando GNU/Linux

Leitura recomendada

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

Inteligência Artificial com PHP e MySQL (parte I)

Compactador de URL utilizando manipulação de diretórios do Linux com PHP

Guia completo do Ocomon módulo admin no Linux (exclusivo VOL)

Capturando conteúdo de sites em 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:

[email protected]_query("SELECT * FROM tb_acesso WHERE tb_acesso.dia_da_semana LIKE 'seg%' ;");

[email protected]_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
[email protected]

[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
[email protected]

[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
[email protected]

[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
[email protected]

[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