+5

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

criado por Fábio Berbert de Paula em 24/01/2003 8:23pm
Como pudemos notar no gráfico anterior, meu artilheiro Fumacinha, vulgo Orlando Fumaça marcou 26 gols durante a semana, então nos surgiu a curiosidade de saber como foi seu desempenho em cada dia, para acompanharmos a evolução do artilheiro.

Para tal situação, optei pelo gráfico de linhas.

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

// lista do número de gols marcados por fumacinha na semana
$gols_fumacinha = array (4, 5, 7, 0, 2, 4, 3);

// lista dos nomes dos dias da semana para nomear o gráfico
$dias_semana = array ("Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab");

$grafico = new Graph(300,200,"auto");
$grafico->SetScale("textlin");

// Definir a quantidade de pixels em cada margem do gráfico,
// esquerda, superior, direita, inferior
// esquerda e inferior são maiores para comportar o título
// dos gráficos
$grafico->img->SetMargin(40,20,20,40);
$grafico->SetShadow();

// definir o gráfico de linhas
$lineplot = new LinePlot($gols_fumacinha);
$lineplot->mark->SetType(MARK_UTRIANGLE);
$lineplot->value->show();

$grafico->Add($lineplot);

$grafico->title->Set("Score artilheiro Fumacinha");
$grafico->xaxis->title->Set("Dias");
$grafico->yaxis->title->Set("Gols");

$grafico->xaxis->SetTickLabels($dias_semana);

$lineplot->SetColor("blue");
$lineplot->SetWeight(2);

$grafico->Stroke();
?>


Figura 02 - Gráfico de Linhas

Comentários:

Mostrando 1 - 10 de 10 comentários
Amigo, eu tenho como setar um valoz fixo para o eixo x? O valor que ele atribui para o eixo x é o maior valor que uma das barras vai ter, eu não tenho como deixar esse falor fixo? Eu não quero que necessariamente uma das barras "toque" no topo do gráfico. Tem como? Espero resposta urgente...!!!
Grato.
Abraço.
Que Deus abençoe,
Agostinho Jr.
19/09/2006 5:07pm (~18 anos atrás)

Amigo, quando eu coloco uma imagem de fundo ele dá essa mensagem:
"Can't read background image: "/imagens/bgGrafico.jpg"
E o caminho esta certo. O que eu faço?
Abraço.
Que Deus abençoe,
Agostinho Jr.
19/09/2006 7:45am (~18 anos atrás)

Amigo, esta dando esse erro. O que eu faço?
Internal error: Chosen locale file for error messages does not exist.
Abraço
Que Deus abençoe,
Agostinho Jr
15/09/2006 1:51pm (~18 anos atrás)

José Walter disse:
Parabéns pelo artigo!!! Nas buscas do Google é o link q é + apontado e, está em diversos sites.
Utilizo o Jpgraph e estou c 2 problemas, e espero q me ajude...
1º) Como faço para sobrepor duas barras e a q está acima ir progredindo a medida q as alimentamos c dados e, todas as duas mostrando o valor de cada... ex.: preciso atingir uma meta de 13 unidades de alguma coisa (esta é a primeira barra de cor azul)... já consegui realizar 2 unidades (esta é a segunda barra (cor amarela) sobreposta a azul)...
2º) Como posicionar corretamente a legenda? Tenho dificuldades entre Legend Pos e AbsPos.
Grato :O)
05/02/2005 11:07pm (~20 anos atrás)

Galera,

atravéz desse tutorial consegui gerar os gráficos que necessito. Valeu demais.

Agora uma dúvida. Preciso pegar essas imagens que são geradas e enviar por e-mail. Como pego essa imagem? Como salva-la em memória?
Alguém tem idéia?

Obrigado
04/01/2005 10:50am (~20 anos atrás)

estou com problemas para implementar o codigo...
dentro de um arquivo php puro ele roda tranquilo
mas dentro de uma td ele da pau
alguem sabe se isso é uma restrição ?
21/07/2004 4:14pm (~20 anos atrás)

Em um projeto que venho desenvolvendo, obtenho os dados a partir do banco de dados (mysql), crio as arrays necessárias e por fim, monto os gráficos com a classe jpgraph.
//CODIGO
$sql = 'SELECT DATE_FORMAT(data_aval, "%m/%y") as data, com, cpt, cbr, cat, cct, cab, cqd, ccx, cpn FROM antropometria WHERE aval_id = '.(int)$_GET['id'].' ORDER BY data_aval DESC LIMIT 0,4';
$pesq = @mysql_query($sql);
$num_linha = mysql_num_rows($pesq);
$i = 0;
while($linha = mysql_fetch_assoc($pesq)){
$medida = array(
$linha['dcse'],
$linha['dctr'],
$linha['dcpt'],
$linha['dcam'],
$linha['dcsi'],
$linha['dcab'],
$linha['dccx'],
$linha['dcpm']
);
$barra[$i] = new BarPlot($medida);
$barra[$i]->SetWidth(0.6);
$barra[$i]->SetLegend($linha['data']);
$barra[$i]->SetFillColor($cor[$i]);
$i++;
}
$grafico_grupo = new GroupBarPlot(array($barra[3], $barra[2], $barra[1], $barra[0]));
$grafico->Add($grafico_grupo);
$grafico->Stroke();
//FIM DO CODIGO
08/03/2003 10:48pm (~22 anos atrás)

Sim, a biblioteca GD é pré-requisito para o uso da classe jpgraph.
28/01/2003 12:45pm (~22 anos atrás)

Sempre desejei exibir enquetes no formato Pizza! Mas desisti pelo tempo que isso ia consumir através do GD puro.

A classe realmente é espetacular!!!

Valeu!!!!!
28/01/2003 6:33am (~22 anos atrás)

Olá gangster,

A classe jpgraph está disponível sobre a licença QPL, que é uma variação da GPL, mas continua livre.

Veja mais em:

http://www.trolltech.com/developer/licensing/qpl.html
28/01/2003 6:24am (~22 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)