+1

Criando gráficos com a classe JPGraph

criado por Fábio Berbert de Paula em 09/12/2002 9:09pm
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:

<?php
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.

Comentários:

Mostrando 1 - 10 de 19 comentários
Olá pessoal,
Gostaria de saber como faço para inserir uma imagem gerada com a JpGraph num pdf gerado com a pdflib.
<?php

$graph = new Graph(...);

// Code to create the graph
// .........................
// .........................

// Put the image in a PDF page
$im = $graph->Stroke(_IMG_HANDLER);

$pdf = pdf_new();
pdf_open_file($pdf, "");

// Convert the GD image to somehing the
// PDFlibrary knows how to handle
$pimg = pdf_open_memory_image($pdf, $im);

pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "Page 1");
pdf_place_image($pdf, $pimg, 0, 500, 1);
pdf_close_image($pdf, $pimg);
pdf_end_page($pdf);
pdf_close($pdf);

$buf = pdf_get_buffer($pdf);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");

echo $buf;

pdf_delete($pdf);

?>

Está acontecendo o seguinte erro:
Fatal error: Call to undefined function: pdf_open_memory_image()

Estou usando php 4.3.10
JpGraph v1.20.2
PDFlib GmbH 6.0.p1

O está acontecendo?
09/05/2006 11:56am (~18 anos atrás)

O exemplo contido na página 3 deste artigo está com um pequeno erro:

Ele esqueceu de estanciar a classe de gráfico de barras antes de usá-la, ou seja antes de fazer:
$gBarras->SetFillColor("orange");
deve-se incluir a seguinte linha:
$gBarras= new BarPlot($numGols);
Esta linha está comentada e se alguém tentar copiar o exemplo não esqueça de descomenta-la

Estou postando isso pois alguns iniciantes como eu podem tentar usá-la e se bater um pouco até conseguir usar este exemplo....

;)
28/10/2005 6:25am (~18 anos atrás)

Nil Martins disse:
Há muitas dúvidas escritas aqui.
O que houve com a comunidade PHP ??
Não tem ninguém pra responder??!!
20/07/2005 9:10am (~18 anos atrás)

Preciso montar gráficos com o eixo "Y" em horas. Alguém sabe setar o jpgraph para esta função????
07/07/2005 9:11pm (~18 anos atrás)

Olá.
Como faço para setar o charcode (iso/utf8). Os labels dos gráficos com acentos não funcionam.
Existe uma configuração ?

obrigado !
04/05/2005 2:17pm (~19 anos atrás)

Galera,

atravéz desse tutorial consegui gerar os gráficos que necessito. Valeu demais.

Agora uma dúvida. Preciso pegar essas imagens que são geradas e enviar por e-mail. Como pego essa imagem?
Alguém tem idéia?

Obrigado
04/01/2005 10:48am (~19 anos atrás)

Alguem saberia me informar qual é o erro. Estou começando a trabalhar com graficos agora, fiz tudo q esta no tutorial mas esta dando o seguinte erro:


JpGraph Error: No path specified for CACHE_DIR. Please specify a path for that DEFINE in jpgraph.php

obrigado,
CArlos
18/09/2003 8:23pm (~20 anos atrás)

Diga qual sua duvida ??? talvez possa ajuda-lo
se puder anexe seu script , posso ver onde esta o erro !

Ronaldo Menezes
15/09/2003 4:40am (~20 anos atrás)

Bem primeiramente parabens para o autor..
Agora vamos a duvida, gostaria de fazer uma consulta em meu banco de dados e gerar o grafico com o resultado dessa consulta, porem ate a parte da consulta sem problemas so que quando conto as linhas da erro na imagem, alguem teria alguma dica de como posso integrar MySql com esta biblioteca ?

bracus

Mave ... ::20212359
02/09/2003 7:27am (~20 anos atrás)

Gostaria de saber como faço para salvar o grafico como figura na memoria para a geração de relatorio em PDF, porque a função image do fpdf não executa arquivo.php, mas so faz referencia ao arquivo;

Estou tentando as funções fopen, fwrite e fclose, não sei o que est errado

$f = fopen("imagem.png","w");
fwrite($f,$graph->Stroke());
fclose($f);

caso tenha outra ideia para disponibilizar a figura na memoria que não seja a execução do arquivo.php
02/06/2003 10:34am (~21 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)