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.
Neste último exemplo vou mostrar como adicionar uma imagem
de fundo ao gráfico. O gráfico abaixo foi retirado do
primeiro artigo da série e simula um gráfico de barras
agrupado.
<?
include ("jpgraph.php");
include ("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");
$grafico = new graph(350,200,"png");
$grafico->img->SetMargin(40,40,40,40);
$grafico->SetScale("textlin");
// definir a imagem de fundo a ser usada pelo grafico
$grafico->SetBackgroundImage( '/home/fpaula/vol3/imagens/fundo_penguim.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();
?>
Figura 03 - Gráfico de barras agrupado
Bom pessoal, espero começar a ver páginas PHP com gráficos
bonitinhos pela web, o tempo está me deixando meio exigente :)
[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.
$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);
[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.
[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?