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.892 ]

Por: Fábio Berbert de Paula em 14/11/2002 | Blog: https://fabio.automatizando.dev


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

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

Tasker - Cotação do dólar usando Javascript

Paginação de resultados em PHP/MySQL

Placa Intel PRO/Wireless 3945ABG no Debian Linux

adb - Como capturar em vídeo a tela de seu Android

Leitura recomendada

Como programar com OOP em PHP, uma classe simples

Acessando o Twitter de 5 formas: protocolo HTTP, cURL, classe HttpRequest (PHP), função http_post_fields() do PHP ou PHP+libcurl

Como atribuir notícias RSS ao seu site usando ATOM e PHP

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

Paginação de resultados em PHP/MySQL

  
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