Академический Документы
Профессиональный Документы
Культура Документы
O que é a JpGrapf?
A JpGraph é uma biblioteca orientada a objetos de criação de gráficos, inteiramente escrita em PHP,
que tem como base a extensão GD2 ou GD1 que acompanha o PHP.
Pode ser utilizada para criar diversos tipos de gráficos, de maneira fácil e escrevendo um mínimo de código. Quando
aliada a bancos de dados torna os gráficos ainda mais interessantes.
Requisitos
Apache (http://httpd.apache.org )
PHP (www.php.net )
JpGraph (http://www.aditus.nu/jpgraph/ )
Parâmetros de Compilação
Obs.: No código de um gráfico não pode haver nenhuma saída em HTML ou texto.
2
Versões
Para PHP4 é indicada a versão 1.19 da JpGrapf e para a versão 5 do PHP é indicada a versão 2.0 beta.
http://corefonts.sourceforge.net/
http://www.gnome.org/fonts/
- GD support - enabled
- FreeTypeSupport – enabled
- JPG support – enabled
- PNG support – enabled
- WBMP support – enabled
3
http://www.aditus.nu/jpgraph/pdf/jpgraphddda.pdf
4
Exemplos de Gráficos
Gráfico dos Poços perfurados pelo DNOCS de 1900 a 1999, por estado:
Este gráfico acessa um banco PostgreSQL. Num pequeno form alguém informa um ano entre 1900 e 1999 e
recebe o gráfico correspondente. Caso não informe o ano retornará o gráfico de todos os anos.
Código abaixo:
//Arquivo barras_pocos.php
<?php
// Inclusão da biblioteca
include ("jpgraph.php");
include ("jpgraph_bar.php");
// Conexão ao banco PostgreSQL e consulta
$db = pg_connect("host=10.0.0.100 dbname=banco port=5432 user=user password=pass") or die
(pg_last_error());
//$sql = pg_query($db,"SELECT pocos.estado as Estado, count(pocos.poco) as Poços FROM
recursos_hidricos.pocos group by pocos.estado order by pocos.estado") or die(pg_last_error());
5
$ano=$_POST['ano'];
6
// Se não for informado o ano da pesquisa no form anterior, exibirá todos os poços, caso contrário mostra
// somente os poços do ano solicitado
if ($ano == "")
$sql=pg_query($db,"SELECT estado, count(poco) as quant from recursos_hidricos.pocos group by estado");
else
$sql=pg_query($db,"SELECT estado, count(poco) as quant from recursos_hidricos.pocos where
recursos_hidricos.pocos.ano = $ano group by estado");
while($row = pg_fetch_array($sql)) {
$quant[] = $row[1]; //Este array ($quant[]) sera usado em um dos eixos
$estado[] = $row[0]; // Este em outro eixo
}
// Construção da base do gráfico
$graph = new Graph(650,350,"auto");
$graph->SetScale("textint"); //Exibir as escalas
$graph->img->SetMargin(50,50,70,50); //Margens dos 4 lados
$graph->title->Set('DNOCS - Poços X Estado do ano de '.$ano); // Título do gráfico
$graph->title->SetFont(FF_VERDANA, FS_BOLD, 16);//Fonte do título
$graph->AdjBackgroundImage(0.4,0.7,-1); //Tipo de background
$graph->xaxis->title->Set('Estados'); //Título do eixo X
$graph->xaxis->SetLabelAngle(30); //Ângulo dos labels do eixo X
$graph->xaxis->SetTickLabels('Estados');
$graph->xaxis->SetFont(FF_VERDANA, FS_BOLD);//Fonte para o título do eixo X
$graph->xaxis->SetTickLabels($estado); // Recebe o array dos estados do banco
$graph->yaxis->title->Set('Poços');
$graph->yaxis->SetFont(FF_FONT1, FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1, FS_BOLD);
$graph->SetShadow(); //Adicionar sombra ao gráfico
Ao baixar a JpGraph e descompactar no diretório web, veja a documentação, que exibe inúmeros tipos de
gráficos com seus respectivos códigos ao lado, como também o subdiretório samples que tem 337 exemplos
de gráficos.
7
Referências