Re: [Cascavel-pm] Cores no gráfico de Pizza
ana.aranda
ana.aranda em bol.com.br
Quinta Dezembro 22 11:44:27 PST 2005
Breno, estou usando GD sim e não utilizo duas variaveis pois na verdade eu tenho uma tela q chama a montagem do relatorio em <img>. O que eu por hora consegui foi retirar os itens zerados q com isso não afeta a ordem das cores só que se deixar o array de valores com zeros, não sei porque existe este problema com a cor. um outro problema que acabei percebendo q 'solucionei' retirando a opção (rsrs) é a exibição de cores erradas quando a opção 3d está selecionada. De qq modo estou mandando o código e uma imagem para ilustração. Obrigada!
for(my $i = 0; $i<= $#produtos; $i++){
$query = "select $camp from vendas_ano where id_produto = $produtos[$i] and ($where)";
warn($query);
$desc = $conn->prepare($query);
$desc->execute;
$campos=$desc->fetchrow_array();
$campos = ($campos*100)/$valor_total;
$campos = ($campos == "")?0:$campos;
if($campos != 0){
push(@graf, $campos);
$query = "select nome from produto where id = $produtos[$i]";
$desc = $conn->prepare($query);
$desc->execute;
my ($nome_prod) = $desc->fetchrow_array();
push(@nomes, $nome_prod);
}
}
push(@graf_final, \@nomes);
push(@graf_final,\@graf);
$conn->disconnect;
my $grafico = GD::Graph::pie->new(250, 250);
$grafico->set(
title => 'Gráfico de Pizza por '.$nome_tipo,
'3d' => 0,
dclrs => ["lorange","lred","lgreen","lyellow","lpurple","cyan","lblue"]
) or warn $grafico->error;
my $imagen = $grafico->plot(\@graf_final) or die $grafico->error;
---------- Início da mensagem original -----------
De: cascavel-pm-bounces em pm.org
Para: "Cascavel Perl Mongers" cascavel-pm em pm.org
Cc:
Data: Thu, 22 Dec 2005 12:50:22 -0200
Assunto: Re: [Cascavel-pm] Cores no gráfico de Pizza
> Oi Ana Carolina,
>
> Você pode mandar mais informações, como qual o módulo que está usando
> para fazer as pizzas, e/ou um trecho de código que ilustre o problema?
> Talvez a solução esteja em algum detalhe no código, e não no conceito em
> si. Não precisa incluir os acessos a banco, desde que as variáveis
> estejam populadas com valores coerentes à sua aplicação ou que consigam
> simular o problema. Tentei reproduzir sua situação usando o módulo GD
> (meu palpite é que seja esse que vc está usando, já que fala de 'lblue',
> 'lred', etc) e cheguei ao seguinte código:
>
> -------8<--------
> use GD::Graph::pie;
>
> my @dados = (
> ["item0", "item1", "item2", "item3", "item4", "item5"],
> [ 15, 0, 9, 0, 0, 23]
> );
>
> my $pizza = GD::Graph::pie->new(480,320);
> $pizza->set ( dclrs => ['lred', 'lorange', 'lgreen', 'lyellow',
> 'lpurple', 'cyan', 'lblue' ] );
> $pizza->plot(\@dados);
> grava($pizza, 'grafico1'); # grava() escreve 'grafico1.gif' em disco
>
> # muda os valores, simulando consulta ao banco
> $dados[1] = [2, 0, 13, 0, 0, 5];
>
> $pizza2 = GD::Graph::pie->new(480, 320);
> $pizza2->set ( dclrs => ['lred', 'lorange', 'lgreen', 'lyellow',
> 'lpurple', 'cyan', 'lblue' ] );
> $pizza2->plot(\@dados);
> grava($pizza2, 'grafico2');
> -------8<--------
>
> O exemplo acima funciona perfeitamente e portanto não consegui simular a
> sua situação de troca de cores. No entanto, algumas coisas me chamaram a
> atenção:
>
> 1) Se eu uso a mesma variavel $pizza e tento fazer um plot com os novos
> dados, o gráfico é feito mas o canvas antigo não é limpo (os gráficos
> parecem sobrepostos). Não encontrei função para limpar o canvas, e por
> isso estou usando 2 variáveis no exemplo ($pizza e $pizza2)
>
> 2) O mantenedor do GD::Graph lançou uma nova versão hoje! Talvez ela
> corrija seu problema (caso seja de fato um problema do módulo)
>
> 3) O módulo GD usa a biblioteca GD (www.boutell.com/gd) para fazer os
> gráficos. Talvez seja um problema na biblioteca, e não no módulo. Tente
> atualizar ambos, se for o caso.
>
> 4) Às vezes as cores podem sair esquisitas, especialmente quando o
> gráfico é em 3D, mas acho que isso diz respeito ao formato como é
> gravado (GIF). Escolhendo outro formato como PNG ou JPG, o problema pode
> sumir (ou não).
>
> 5) Como deve ter ficado bastante óbvio, não sou nenhum especialista em
> imagens, muito menos em GD (aliás, pelo contrário). Se alguém tiver mais
> alguma idéia ou precisar corrigir alguma besteira que eu tenha escrito,
> por favor o faça ;)
>
> []s
>
> breno
>
> ana.aranda wrote:
> > Estou exibindo duas pizzas, uma ao lado da outra, que são montadas por um array de 6 posições.
> > O problema é que neste array as posições 0,2 e 5 tem valores diferentes de zero e as outras com
> > valor zero. Coloquei como cores no grafico lred, lorange, lgreen, lyellow, lpurple, cyan e lblue
> > exatamnete nesta ordem.
> >
> > O problema é que um gráfico fica com vermelho, verde e azul e o outro fica com laranja, verde e azul.
> > Sendo que os gráficos refletem os mesmas posições de array com valores diferentes.
> > É a mesma tela que monta os gráficos, a única coisa que muda são os campos buscados no banco de dados.
> > Se alguém puder me ajudar, agradeço!
> >
> > Ana Carolina Aranda
> >
> >
> >
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> >
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome : erro_pizza.jpg
Tipo : image/jpeg
Tam : 46594 bytes
Descr.: não disponível
Url : http://mail.pm.org/pipermail/cascavel-pm/attachments/20051222/eabf721c/iso-8859-1Qerro5Fpizza-0001.jpg
Mais detalhes sobre a lista de discussão Cascavel-pm