Aninh@ 1 Denunciar post Postado Dezembro 18, 2006 Oi pessoal,Estou desenvolvendo um gráfico de pizza, mas na hora de mostrar a legenda na tela estou tendo problemas, pois ao invés de aparecer a legenda, aparece um bloco preto. Alguém poderia me ajudar????Aqui está o meu script:function gera_Grafico($keys, $canal) { for($i=0;$i<count($keys);$i++){ $channel = $canal[$keys[$i]]; $row="select count(channel) as total from record_analogica.record where channel='".$channel."'"; $row= @mysql_query($row); while($row=@mysql_fetch_assoc($row)){ $data[$i]=$row['total']; } } //Seta o tamanho da imagem (ImageX,ImageY). $imgx='290';$imgy='200'; //Setar a posição do disco (CenterX,CenterY). $cx = '100';$cy ='50'; // Setar tamanho das dimensões (SizeX,SizeY,SizeZ). $sx = '200';$sy='100';$sz ='20'; $data_sum = array_sum($data); // Converte para ângulos for($i=0;$i<=count($keys);$i++){ $angle[$i] = (($data[$i] / $data_sum) * 360); $angle_sum[$i] = array_sum($angle); }; $im = imagecreate ($imgx,$imgy); $legenda = imagecreate ($imgx,$imgy); $background = imagecolorallocate($im, 255, 255, 255); // Randomiza as cores para ficarem aleatórias. for($i=0;$i<=count($data);$i++){ $r=rand(100,255);$g=rand(100,255);$b=rand(100,255); $colors[$i] = imagecolorallocate($im,$r,$g,$B); $colord[$i] = imagecolorallocate($im,($r/2),($g/2),($b/2)); $colorl[$i] = imagecolorallocate($legenda,$r,$g,$B); $paleta[$colors[$i]] = $data; // $paleta[$i] = $colors[$i]; } // Efeito 3D for($z=1;$z<=$sz;$z++){ for($i=1;$i<=count($keys);$i++){ imagefilledarc($im,$cx,($cy+$sz)-$z,$sx,$sy,$angle_sum[$i-1] ,$angle_sum[$i],$colord[$i],IMG_ARC_PIE); }; }; // Disco superior for($i=1;$i<=count($keys);$i++){ imagefilledarc($im,$cx,$cy,$sx,$sy,$angle_sum[$i-1] ,$angle_sum[$i], $colors[$i], IMG_ARC_PIE); }; // LEGENDA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $canais = $canal; $cor = $colorl; $h = count($canais)*13; $legenda = imagecreate(80,$h); imagefill($legenda, 0,0,0xffffff); $itexto = 0; $iqd = 3; for($i=0;$i<count($keys);$i++){ $h0_qd = $iqd + ($i*12); $hf_qd = $h0_qd + 8; $y0_t = ($itexto + ($i*12)); imagefilledrectangle($legenda, 0,$h0_qd,10,$hf_qd,$cor[$i]); imagestring($legenda, 8,15,$y0_t,$canais[$keys[$i]],0x000000); } imagecopy($im, $legenda, 205, 0, 0, 0, 80, $h); imagepng($im);} Compartilhar este post Link para o post Compartilhar em outros sites
pabloleary 0 Denunciar post Postado Dezembro 18, 2006 meu na boa , usa a classe jpgraph ,agora se você esta tentando criar seus próprios graficos beleza Compartilhar este post Link para o post Compartilhar em outros sites