Pular para o conteúdo

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

A linguagem PHP nos oferece uma infinidade de recursos para criar e manipular imagens. Este artigo é o segundo da série que nos mostra como criar sofisticadas estruturas de gráficos com a classe jpgraph.
Fábio Berbert de Paula fabio
Hits: 118.762 Categoria: PHP Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar

Introdução

No primeiro artigo da série falamos sobre a importância de se utilizar classes avançadas para facilitar a criação de nossos gráficos, visto que a biblioteca GD possui funções muito "brutas" para uso no cotidiano de quem trabalha com estatísticas e imagens mais avançadas.

Também aprendemos como instalar a classe jpgraph em seu servidor UNIX e por fim a criar sofisticados gráficos de barras. Se você ainda não leu o artigo anterior, dê um pulinho na URL abaixo:

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=22

No artigo de hoje deixaremos a parte teórica de lado e iremos direto ao que interessa, os exemplos práticos de gráficos, bon apetit!

   1. Introdução
   2. Gráfico de Pizza
   3. Gráfico de Linhas
   4. Gráfico de Barras com Imagem de Fundo

EAuthenticator - Clone do Google Authenticator para Linux

Edital de política de contribuição de artigos

cpulimit - Limitando o uso da CPU por processo

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

Como ter o chatGPT no terminal Linux

Solid RELAÇÃO COM GOF

Debugando aplicações PHP com Xdebug e Eclipse PDT

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

Abordagem exemplificada de orientação à objeto com PHP 5

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

#1 Comentário enviado por xunda em 30/05/2003 - 23:18h
Eu tenho uma dúvida. Fiz uma busca normal e quero dessa busca armazena os valores e desses valores derivar para o gráfico, mas não estou conseguindo, poderia me ajudar?
Eu peguei o teu exemplo para assim quem sabe esclarecer melhor a minha dúvida. Obrigada Ana.


$busca_idpes_adv = "select idpes_adv from advogado_dj";
$busca = pg_exec($conn, $busca_idpes_adv);
for($i=0;$i<pg_numrows($busca);$i++)
{
$arr = pg_fetch_array($busca, $i, PGSQL_NUM);
$arr[0];
}
for($j = 0; $j < pg_numrows($busca); $j++){
$arr_outro = pg_fetch_row($busca, $j);
$idpes_adv = $arr_outro[0];
$busca_nome = "select nome from pessoa where idpes = ".$idpes_adv." ";
$busca1 = pg_exec($conn, $busca_nome);
$arr_nomeadv = pg_fetch_row($busca1,0);
echo $arr_nomeadv[0];
$diasSemana = $arr_nomeadv[0];
$busca_numproc = "select count(idproc) from processo_dj where idpes_adv = ".$idpes_adv." ";
$busca_num = pg_exec($conn, $busca_numproc);
$arr_numproc = pg_fetch_row($busca_num, 0);
echo $arr_numproc[0]."<br>";
$numGols = $arr_numproc[0];
}


include ("../../jpgraph/src/jpgraph.php");
include ("../../jpgraph/src/jpgraph_bar.php");


//$numGols = array ("8", "7", "12", "10", "7", "9", "11");

// definir um array com o numero de gols sofridos
$numGolsSofridos = array("3", "4", "13", "9", "1", "5", "10", "9");

//$diasSemana = array("Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab");

$grafico = new graph(450,200,"png");
$grafico->img->SetMargin(40,40,40,40);
$grafico->SetScale("textlin");

// definir a imagem de fundo a ser usada pelo grafico
//$grafico->SetBackgroundImage('faixasuperior.jpg',BGIMG_FILLFRAME);

$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 funcao SetLegend estamos automaticamente criando uma legenda
// para o grafico
$gBarras->SetLegend("Gols marcados");

// criar mais um grafico de barras para o numero de gols sofridos
$gBarras2 = new BarPlot($numGolsSofridos);
$gBarras2->SetFillColor("red");
$gBarras2->SetShadow("darkblue");
$gBarras2->SetLegend("Gols sofridos");

$grupoBarras = new GroupBarPlot(array($gBarras,$gBarras2));
$grupoBarras->SetWidth(0.6);
$grafico->Add($grupoBarras);

$grafico->yaxis->title->Set("Gols");
$grafico->xaxis->title->Set("Dia da semana");
$grafico->xaxis->SetTickLabels($diasSemana);

$grafico->Stroke();
?>
#2 Comentário enviado por derli.r em 16/06/2003 - 10:22h
Eu quero adicionar junto a porcentagem do grafico pizza o valor de cada Exemplo: 45% - 8 gols....
obrigado.Derli
#3 Comentário enviado por buzz_sbo em 04/05/2005 - 10:09h
Bom dia, gostaria de saber como fazer uma interação do JPGRAPH com meu banco de dados em MYSQL, por exemplo da coluna vertical ficariam os valores e na horizontal a data, mas eles só vão poder atribuir valores nos eixos apos uma consulta. A consulta já está pronta.
#4 Comentário enviado por MauF em 05/01/2006 - 10:53h
Ola, gostaria de saber como jogar para o gráfico o resultado de uma consulta feita no banco de dados Mysql?

Muito obrigado
#5 Comentário enviado por zebacking em 17/09/2006 - 00:28h
ola, como ploto funçoes matematicas com esses graficos, tipo cos(x) e sin(x), dentre outras
#6 Comentário enviado por comfaa em 28/10/2008 - 12:59h
muito legal !!!
#7 Comentário enviado por farleypiva em 05/05/2009 - 15:41h
Oi Fabio! Seu artigo está muito bom! Parabéns!
Só tive uma dificuldade... o eixo y do meu grafico possui valores grandes, e eles estão ficando em cima da descrição do eixo. Mesmo aumentando a margem, o grafico e a descrição do eixo y são deslocados. Existe alguma forma de movimentar somente a descrição do eixo y ou somente o grafico?

Obrigado.

Contribuir com comentário

Entre na sua conta para comentar.