Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Workshop de PHP
SEÇÕES
Manuais relacionados
+Workshop de PHP
Categorias
+Scripts em PHP

Índice do Manual Workshop de PHP
+ Gestão de ficheiros através de PHP
+ Upload de ficheiros com PHP
+ Verificar a existência de uma URL
+ Leitura sequencial de ficheiros com PHP
+ Escritura em ficheiros com PHP
+ Gestão de directórios com PHP
+ Função que escreve um campo select com valores de uma base de dados
+ Receber o último ID de uma inserção com PHP e MySQL
+ Recolher dados de um Select Multiple com PHP
+ Enviar e-mails pelo PHP
+ Validar um endereço email em PHP
+ Loop para receber todas as variáveis por POST em PHP
+ Enviar um formulário por mail com PHP
+ Paginação de resultados com PHP e MySQL
+ Usuários ativos com PHP
+ Listas de elementos com cores alternas em PHP
+ Programas de livre distribuição em PHP
+ phpMyAdmin
+ Formatação de uma cadeia
+ Cálculo dos dias de um mês em PHP
+ Contador simples para páginas PHP
+ Avaliações dos usuários em PHP
+ Rastrear os robôs de buscadores
+ Recomendar um site usando PHP
+ Criação de um log de erros
+ Comprimir página PHP
+ Contador PHP com imagens
+ Editor PHP Maguma Studio
+ SiteMaps de Google em PHP
+ Teste de velocidade de conexão à Internet
+ Mostrar Conteúdo de acordo com o país em PHP
+ Conteúdos em banco de dados com PHP
+ Problemas com as datas em timestamp Unix de PHP
+ Contar o número de linhas e caracteres em arquivo PHP
+ Transformação Doc, Odt ou Rtf para PDF
+ Preencher um arquivo RTF e gerar o PDF
+ Converter arquivos ods ou xls para pdf
+ PHP isam, ferramenta Web para Arquivos Planos
+ Undefined variable ou Undefined index
+ Agregar carinhas ao sistema
+ Paginator, script para paginação com PHP e MySQL
+ Executar scripts PHP automaticamente através do cron com CURL
+ Uso do FTP com PHP
+ Instalação de One or Zero PHP Helpdesk
+ Portal PHP Nuke
+ Gerando feed RSS de notícias em PHP
+ Blasten blt-SEARCH 1.0.5
+ Classes e Objetos em PHP
+ Recuperando a qualidade de uma imagem JPEG
+ Comprovar se existe o domínio do correio
+ Tutorial de BBCode
+ Função em PHP para o cálculo de minutos transcorridos em duas horas dadas
+ Criação de gráficos em PHP com JpGraph
+ Gerar documentos de Word RTF com PHP
+ Introdução ao Symfony
+ Arredondar decimais em PHP
+ Envio de boletins a e-mails de um banco de dados MySQL
+ Htaccess e páginas dinâmicas
+ Criando imagens com PHP
+ Programar um buscador com PHP e MySQL
+ Loop para receber todos os dados de uma fila de um recordset com PHP

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Criação de gráficos em PHP com JpGraph

Apresentação da biblioteca JpGraph, que serve para gerar imagens com todo tipo de gráficos de dados em PHP.


Uma tarefa que mais cedo ou mais tarde vamos ter que enfrentar ao longo de nossa andança como profissionais do web, é a criação de gráficos a partir de dados. Quando falo de gráficos me refiro a todo tipo de imagens que sirvam para representar dados, como gráficos de barras, de linhas, de progresso, de pizza, etc.

Obviamente, a criação de gráficas não é um tema trivial, e sim que requer uma grande dose de dedicação e esforço. Os gráficos, que geralmente se mostram em imagens, podem ser de muitos tipos diferentes e só o fato de tratar de desenhar em uma imagem linhas, barras ou inclusive pizzas em três dimensões, pode ser bastante complicado.

Entretanto, existem sistemas como JpGraph, que podem nos facilitar a tarefa de uma maneira muito interessante, pois oferecem uma série de mecanismos para a geração das imagens com os gráficos, de modo que nós só temos que nos centrar em carregar os dados a representar e escolher o tipo de gráfico que desejamos visualizar.

O que é JpGraph

É uma biblioteca que inclui uma série de classes -código orientado a objetos- que servem para criar imagens com todo tipo de gráficos, dinamicamente através páginas PHP.

O sistema está muito depurado e suporta uma infinidade de funcionalidades, por isso certamente encontraremos solução a praticamente qualquer necessidade no âmbito de criação de gráficos. Além disse, a maioria das configurações dos gráficos vêem com opções padrão, portanto resulta bastante simples obter resultados rapidamente.

Algumas das características do sistema são:

  • Reduzido peso em bytes das imagens resultado. Habitualmente poucas KB.
  • Suporte às bibliotecas GD1 ou GD2.
  • Uso da Interpolação matemática para obter curvas a partir de poucos valores.
  • Diversos tipos de gráficos 2D ou 3D, como de pontos, linhas, pizzas, barras, caixas...
  • Escalas flexíveis tanto no eixo X como no Y, que se ajustam ao jogo de dados que tiver que representar.
  • Suporte para gerar gráficos com vários jogos de valores de uma só vez.
  • Configurável com distintos tipos de cores, legendas, tipografias, imagens de fundo, etc.
Como usar JpGraph

Este jogo de bibliotecas dispõe de uma extensa documentação e tutoriais para aprender a manejá-lo. Na documentação se encontram ainda numerosos exemplos de seu uso, desde os quais podemos partir para solucionar nossas necessidades.

O modo de trabalho para usar esta biblioteca é muito simples, trata-se de criar uma imagem com a etiqueta <img> de HTML, em cujo atributo src colocaremos a rota para o script PHP que se encarregará de gerar o gráfico.

No arquivo PHP que gerará o gráfico teremos que incluir as bibliotecas apropriadas para o tipo de gráfico que desejarmos realizar, também haverá que instanciar o objeto JpGraph correspondente, carregar os dados a visualizar e chamar aos métodos adequados para mostrar a imagem. Um mecanismo bastante simples que veremos em um par de exemplos a seguir.

Exemplo 1: um gráfico de linha


Neste exemplo vamos criar um gráfico linear no qual mostraremos as horas de trabalho de uma pessoa ao longo de 10 dias.

A geração do gráfico deste exemplo a fazemos em um arquivo que chamamos grafico_linha.php, portanto, a chamada a este arquivo dentro de uma imagem será a seguinte:

<img src="grafico_linha.php" alt="" border="0"> O código PHP do arquivo grafico_linha.php é o seguinte:

<?php
include ("jpgraph/jpgraph.php");
include ("jpgraph/jpgraph_line.php");

// Some data
$ydata = array(11.5,3,8,12,5,1,9,13,5,7);

// Create the graph. These two calls are always required
$graph = new Graph(450,250,"auto");
$graph->SetScale("textlin");
$graph->img->SetAntiAliasing();
$graph->xgrid->Show();

// Create the linear plot
$lineplot=new LinePlot($ydata);
$lineplot->SetColor("black");
$lineplot->SetWeight(2);
$lineplot->SetLegend("Horas");

// Setup margin and titles
$graph->img->SetMargin(40,20,20,40);
$graph->title->Set("Exemplo: Horas de Trabalho");
$graph->xaxis->title->Set("Dias");
$graph->yaxis->title->Set("Horas de Trabalho");
$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#F9BB64@0.5');
//$graph->SetShadow();

// Add the plot to the graph
$graph->Add($lineplot);

// Display the graph
$graph->Stroke();
?>


Exemplo 2: um gráfico de pizza em 3D


Por outro lado, vamos realizar um exemplo de um gráfico de pizza, no qual aparecem as horas realizadas por cada um dos empregados e a porcentagem com respeito aos totais. Neste caso, a pizza vai se apresentar em um desenho em 3 dimensões.

O arquivo onde se gera o gráfico se chama grafico_pizza.php. Ele será chamado dentro de uma imagem com este código HTML.

<img src="grafico_pizza.php" alt="" border="0">

O código PHP do arquivo grafico_pizza.php será o seguinte:

<?php
include ("jpgraph/jpgraph.php");
include ("jpgraph/jpgraph_pie.php");
include ("jpgraph/jpgraph_pie3d.php");

$data = array(40,60,21,33);

$graph = new PieGraph(450,200,"auto");
$graph->img->SetAntiAliasing();
$graph->SetMarginColor('gray');
//$graph->SetShadow();

// Setup margin and titles
$graph->title->Set("Exemplo: Horas de Trabalho");

$p1 = new PiePlot3D($data);
$p1->SetSize(0.35);
$p1->SetCenter(0.5);

// Setup slice labels and move them into the plot
$p1->value->SetFont(FF_FONT1,FS_BOLD);
$p1->value->SetColor("black");
$p1->SetLabelPos(0.2);

$nomes=array("pepe","luis","miguel","alberto");
$p1->SetLegends($nomes);

// Explode all slices
$p1->ExplodeAll();

$graph->Add($p1);
$graph->Stroke();
?>


Conclusão

JpGraph é uma ferramenta muito potente para a geração de gráficos em nossa página web e graças ao seu uso nos damos conta de suas muitas bondades:

  • É uma biblioteca gratuita (para uso não comercial), fácil de instalar e de fácil manejo.
  • Inclui uma completa documentação com uma infinidade de exemplos dos distintos gráficos que se podem gerar.
  • Além de gerar muitos tipos de gráficos, permite 'customizar' quase tudo o que se vê, resultando isto muito útil para integrar perfeitamente o gráfico no design de nossa web.
  • A forma de integrar o gráfico é muito simples: unicamente é necessário incluir uma imagem (etiqueta <IMG>) cujo src seja o script PHP que gerará nosso gráfico (ver exemplos).

Encontramos poucos defeitos na biblioteca, somente se poderia mais o seguinte:

  • As mensagens de erro são meio e escassas, e a maioria das vezes quando algo falha, não obtemos nenhuma explicação.
  • Faz falta algo de definição nos gráficos, sobretudo nos gráficos de setores.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Workshop de PHP

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Scripts em PHP


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
Acrescentar um comentário do artigo Acrescentar um comentário do artigo



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites