Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/07/2012, 16:34
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Respuesta: Como hacer grafica de tarta con php

Ok disculpe mora este es del script que hice para que me mostrara el grafico con dos valores y funcione excelente me mostro e porcentaje de esexo masculino y femenino es decir el verde y el rojo

Código PHP:
Ver original
  1. <?PHP
  2.    header ("Content-type: image/png");
  3.    
  4. // Calcular ángulos
  5.    $votos1 = $_REQUEST['votos1'];
  6.    $votos2 = $_REQUEST['votos2'];
  7.    $totalVotos = $votos1 + $votos2;
  8.  
  9.    $porcentaje1 = round (($votos1/$totalVotos)*100,2);
  10.    $angulo1 = 3.6 * $porcentaje1;
  11.    $porcentaje2 = round (($votos2/$totalVotos)*100,2);
  12.    $angulo2 = 3.6 * $porcentaje2;
  13.  
  14. // Crear imagen
  15.    $imagen = imagecreate (300, 300);
  16.    $colorfondo = imagecolorallocate ($imagen, 203, 203, 203); // CCCCCC
  17.    $color1 = imagecolorallocate ($imagen, 255, 0, 0); // FF0000
  18.    $color2 = imagecolorallocate ($imagen, 0, 255, 0); // 00FF00
  19.    $colortexto = imagecolorallocate ($imagen, 0, 0, 0); // 000000
  20.  
  21. // Mostrar tarta
  22.    imagefilledrectangle ($imagen, 0, 0, 300, 300, $colorfondo);
  23.    imagefilledarc ($imagen, 150, 120, 200, 200, 0, $angulo1, $color1, IMG_ARC_PIE);
  24.    imagefilledarc ($imagen, 150, 120, 200, 200, $angulo1, 360, $color2, IMG_ARC_PIE);
  25.  
  26. // Mostrar leyenda
  27.    imagefilledrectangle ($imagen, 60, 250, 80, 260, $color1);
  28.    $texto1 = "Total Masculino: " . $votos1 . " (" . $porcentaje1 . "%)";
  29.    imagestring ($imagen, 3, 90, 250, $texto1, $colortexto);
  30.    imagefilledrectangle ($imagen, 60, 270, 80, 280, $color2);
  31.    $texto2 = "Total Femenino: " . $votos2 . " (" . $porcentaje2 . "%)";
  32.    imagestring ($imagen, 3, 90, 270, $texto2, $colortexto);
  33.  
  34.    imagepng ($imagen);
  35.    imagedestroy ($imagen);
  36. ?>

y este de aqui el que estoy adaptando para que mem mustre los tres colores hasta el momento me logra mostrar el porcentaje de los tres y la leyenda de los tres pero solo dos colores

Código PHP:
Ver original
  1. <?PHP
  2.    header ("Content-type: image/png");
  3.    
  4. // Calcular ángulos
  5.    $votos1 = $_REQUEST['votos1'];
  6.    $votos2 = $_REQUEST['votos2'];
  7.    $votos3 = $_REQUEST['votos3'];
  8.    $totalVotos = $votos1 + $votos2 + $votos3;
  9.  
  10.    $porcentaje1 = round (($votos1/$totalVotos)*100,2);
  11.    $angulo1 = 3.6 * $porcentaje1;
  12.    $porcentaje2 = round (($votos2/$totalVotos)*100,2);
  13.    $angulo2 = 3.6 * $porcentaje2;
  14.    $porcentaje3 = round (($votos3/$totalVotos)*100,2);
  15.    $angulo3 = 3.6 * $porcentaje3;
  16.  
  17.  
  18. // Crear imagen
  19.    $imagen = imagecreate (300, 300);
  20.    $colorfondo = imagecolorallocate ($imagen, 203, 203, 203); // CCCCCC color gris de fondo de tarta
  21.    $color1 = imagecolorallocate ($imagen, 255, 0, 0); // FF0000 Color rojo de tarta
  22.    $color2 = imagecolorallocate ($imagen, 0, 255, 0); // 00FF00 Color verde de tarta
  23.    $color3 = imagecolorallocate ($imagen, 0, 0, 255); // 0000FF Color azul de tarta
  24.    $colortexto = imagecolorallocate ($imagen, 0, 0, 0); // 000000 color negro de letra
  25.  
  26.  
  27. // Mostrar tarta
  28.    imagefilledrectangle ($imagen, 0, 0, 300, 300, $colorfondo);
  29.    imagefilledarc ($imagen, 150, 120, 200, 200, 0, $angulo1, $color1, IMG_ARC_PIE);
  30.    imagefilledarc ($imagen, 150, 120, 200, 200, $angulo1, 360, $color2, IMG_ARC_PIE);
  31.    imagefilledarc ($imagen, 150, 120, 200, 200, $angulo1, 360, $color3, IMG_ARC_PIE);
  32.  
  33. // Mostrar leyenda
  34.    imagefilledrectangle ($imagen, 60, 250, 80, 260, $color1);
  35.    $texto1 = "Total Notas 1: " . $votos1 . " (" . $porcentaje1 . "%)";
  36.    imagestring ($imagen, 3, 90, 220, $texto1, $colortexto);
  37.    imagefilledrectangle ($imagen, 60, 270, 80, 280, $color2);
  38.    $texto2 = "Total Notas 2: " . $votos2 . " (" . $porcentaje2 . "%)";
  39.    imagestring ($imagen, 3, 90, 250, $texto2, $colortexto);
  40.    imagefilledrectangle ($imagen, 60, 270, 80, 280, $color3);
  41.    $texto3 = "Total Notas 3: " . $votos3 . " (" . $porcentaje3 . "%)";
  42.    imagestring ($imagen, 3, 90, 270, $texto3, $colortexto);
  43.  
  44.    imagepng ($imagen);
  45.    imagedestroy ($imagen);
  46. ?>