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.
Agora me surgiu a necessidade de definir a quantidade de gols sofridos no mesmo gráfico, será que vai ficar legal ? Claro que vai, meu saldo de gols está positivo. Ou seja, o que seriam dois gráficos separados,o de gols marcados e gols sofridos passará a ser apenas um. Vou criar o gráfico normalmente e adicionar mais um gráfico de barras no mesmo.Vamos reutilizar o código do último exemplo e comentar as novas linhas adicionadas. Let's work!
<? // exemplo4.php include ("jpgraph.php"); include ("jpgraph_bar.php");
$numGols = array ("8", "7", "12", "10", "7", "9", "11"); // definir um array com o número de gols sofridos $numGolsSofridos = array("3", "4", "13", "9", "1", "5");
$grafico = new graph(350,200,"png"); $grafico->img->SetMargin(40,40,40,40); $grafico->SetScale("textlin"); $grafico->SetShadow();
$grafico->title->Set('Viva o Linux Futebol Clube'); $grafico->subtitle->Set('www.vivaolinux.com.br'); $grafico->ygrid->Show(true); $grafico->xgrid->Show(true);
$gBarras = new BarPlot($numGols); $gBarras->SetFillColor("orange"); $gBarras->SetShadow("darkblue"); // com a função SetLegend estamos automaticamente criando uma legenda // para o gráfico $gBarras->SetLegend("Gols marcados");
// criar mais um gráfico de barras para o número de gols sofridos $gBarras2 = new BarPlot($numGolsSofridos); $gBarras2->SetFillColor("red"); $gBarras2->SetShadow("darkblue"); $gBarras2->SetLegend("Gols sofridos");
$grupoBarras = new GroupBarPlot(array($gBarras,$gBarras2)); $grafico->Add($grupoBarras);
$grafico->yaxis->title->Set("Gols"); $grafico->xaxis->title->Set("Dia da semana"); $grafico->xaxis->SetTickLabels($diasSemana);
$grafico->Stroke(); ?>
Figura 04 - gráfico de barras agrupado
Como vocês podem ver, criar belos gráficos em PHP é moleza, ponto para a comunidade de desenvolvedores que apoiam a iniciativa do software livre. No site oficial do jpgraph o autor cita que aceita donativos caso o software seja útil à sua empresa. Assim que eu angariar recursos em trabalhos baseados nessa classe não terei dúvidas ao depositar uma quantia simbólica como forma de agradecimento.
No próximo artigo veremos como criar gráficos de pizza, linhas e alguns recursos adicionais.
[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
[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
[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
[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!
[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.
[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?
[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???
[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?
[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.
[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....