Foros del Web » Programando para Internet » PHP »

Como hacer grafica de tarta con php

Estas en el tema de Como hacer grafica de tarta con php en el foro de PHP en Foros del Web. Hola como estan todos los programadores de este foro, disculpen que habra un tema para tan sencilla pregunta pero e estado buscando como hacer o ...
  #1 (permalink)  
Antiguo 08/07/2012, 23:55
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Como crear graficas de estadisticas con php

Hola como estan todos los programadores de este foro, disculpen que habra un tema para tan sencilla pregunta pero e estado buscando como hacer o crear un grafico de torta con php sin utilizar librerias, si alguien por favor sabe alguna direccion de como crear graficos de tortas o de barra pero con php exclusiva nada de libreria por favor se lo agradeceria mucho en verdad, o alguna libreria q no sea tan pesada y q se haya probado antes en servidores, por fa se los agradeceria mucho en verdad. Muchas gracias
  #2 (permalink)  
Antiguo 09/07/2012, 01:53
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Como crear graficas de estadisticas con php

https://developers.google.com/chart/
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #3 (permalink)  
Antiguo 09/07/2012, 14:59
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Como hacer grafica de tarta con php

Hola como estan todos disculpen pero esta vez vengo con un pequeño problema, estuve buscando y consegui como hacer un grafico de tarta con php sin usar librearias, ya logre hacer la primera tarta con dos valores apenas que son sexo masculino y femenino, me mostro la tarta con dos colores y porcentaje diferentes, muy bien.

Ahora el problema es que quiero hacer otra tarta pero con tres valores y no logro que me muestre el tercer valor en la grafica solo me muestra uno, si alguien sabe como hacer para que se me vean el 3 valor por fa de lo agradeceria mucho, aqui les dejo el script

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, 300);
  20.    $colorfondo = imagecolorallocate ($imagen, 203, 203, 203); // CCCCCC color gris de fondo de tarta
  21.    $color1 = imagecolorallocate ($imagen, 255, 0, 0, 0); // FF0000 Color rojo de tarta
  22.    $color2 = imagecolorallocate ($imagen, 0, 255, 0, 0); // 00FF00 Color verde claro de tarta
  23.    $color3 = imagecolorallocate ($imagen, 0, 0, 255, 0); // 0000FF Color azul de tarta
  24.    $colortexto = imagecolorallocate ($imagen, 0, 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,  $angulo1, $color1, IMG_ARC_PIE);
  30.    imagefilledarc ($imagen, 150, 120, 200, 200, $angulo1, $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. ?>
Infracción Recibida
  #4 (permalink)  
Antiguo 09/07/2012, 15:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como hacer grafica de tarta con php

Código PHP:
Ver original
  1. // Me parece que te sobra un argumento en esta línea:
  2. imagefilledarc ($imagen, 150, 120, 200, 200, $angulo1, [B]360[/B], $color3, IMG_ARC_PIE);
  3.  
  4. // O te falta en las dos anteriores la correspondiente a "end"

Además, en las tres estás usando el mismo inicio ($angulo1), no sé si sea correcto, ya nos contarás.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 09/07/2012, 15:53
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 13 años, 11 meses
Puntos: 63
Sonrisa Respuesta: Como hacer grafica de tarta con php

Ciertamente, como dice Triby, estas declarando $angulo1, $angulo2 y $angulo3. Pero usas solo $angulo1... Supongo que solo ves uno, porque se estaran sobreponiendo.
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #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. ?>
  #7 (permalink)  
Antiguo 09/07/2012, 18:39
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como hacer grafica de tarta con php

imagefilledarc ($imagen, 150, 120, 200, 200, 0, $angulo1, $color1, IMG_ARC_PIE);
imagefilledarc ($imagen, 150, 120, 200, 200, $angulo1, 360, $color2, IMG_ARC_PIE);
imagefilledarc ($imagen, 150, 120, 200, 200, $angulo1, 360, $color3, IMG_ARC_PIE);

- La primera línea está bien, porque partes desde 0 hasta $angulo1
- En la segunda y tercera, lo haces desde $angulo1 hasta 360 y eso es lo que está mal, porque ambos cubren la misma área, lógicamente, el tercero ocupa el lugar del segundo también
- La segunda debería ser desde $angulo1 hasta $angulo2
- La tercera desde $angulo2 hasta 360, que completa el círculo
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 09/07/2012, 19:16
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como hacer grafica de tarta con php

Hola disculpa pero no te entendi muy bien a lo q te refeires si pudieras ayudarme como hirian ene sa parte como dices desde hasta, por favor te lo agradeceria, y gracias por responder
  #9 (permalink)  
Antiguo 09/07/2012, 19:30
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como hacer grafica de tarta con php

Lo hice de esta manera y no me mostro sino solo dos colores el dos y el tres mas nada

// Mostrar tarta
imagefilledrectangle ($imagen, 0, 0, 300, 300, $colorfondo);
imagefilledarc ($imagen, 150, 120, 200, 200, 0, $angulo1, $color1, IMG_ARC_PIE);
imagefilledarc ($imagen, 150, 120, 200, 200, $angulo1, $angulo2, $color2, IMG_ARC_PIE);
imagefilledarc ($imagen, 150, 120, 200, 200, $angulo2, 360, $color3, IMG_ARC_PIE);
  #10 (permalink)  
Antiguo 09/07/2012, 21:34
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como hacer grafica de tarta con php

Hola de nuevo alguien me podruia echar una manito este script del grafico me sale excelente pero cuando no existen datos en la tabla salen estos errores.

Warning: Division by zero in C:\wamp\www\Validacion\Graficas de consultas\grafica.php on line 65

Warning: Division by zero in C:\wamp\www\Validacion\Graficas de consultas\grafica.php on line 65

Warning: Division by zero in C:\wamp\www\Validacion\Graficas de consultas\grafica.php on line 65

aqui esta el script que estoy usando para el grafico

Código PHP:
Ver original
  1. <?php
  2.  
  3. // Obtener datos actuales de la votación
  4.  
  5. $sqll= mysql_query("select * from periodo_escolar order by id desc") or die(mysql_error());
  6. $array3 = mysql_fetch_array($sqll);
  7.      
  8. $sql=mysql_query("select count(nota1) as total from notas") or die("Problemas en el select:".mysql_error());
  9. $reg=mysql_fetch_array($sql);
  10.  
  11. $sql2=mysql_query("select count(nota1) as cantidad from notas where nota1 <= 10 and lapso = '".$array3['lapso']."' and grado = '7'") or die("Problemas en el select:".mysql_error());
  12. $reg2=mysql_fetch_array($sql2);
  13.  
  14.  
  15. $sql3=mysql_query("select count(nota1) as cantidad from notas where nota1 >= 11 and nota1 <= 15 and lapso = '".$array3['lapso']."' and grado = '7'") or die("Problemas en el select:".mysql_error());
  16. $reg3=mysql_fetch_array($sql3);
  17.  
  18. $sql4=mysql_query("select count(nota1) as cantidad from notas where nota1 >= 16 and lapso = '".$array3['lapso']."' and grado = '7'") or die("Problemas en el select:".mysql_error());
  19. $reg4=mysql_fetch_array($sql4);
  20.  
  21. $total_notas1=100*$reg2['cantidad']/$reg['total'];
  22.  
  23. $total_notas2=100*$reg3['cantidad']/$reg['total'];
  24.  
  25. $total_notas3=100*$reg4['cantidad']/$reg['total'];
  26.  
  27. $votos1 = $reg2['cantidad'];
  28. $votos2 = $reg3['cantidad'];
  29. $votos3 = $reg4['cantidad'];
  30.  
  31. $datosTabla = array(
  32.         array( "Nota <= a 10", "$total_notas1", "#FF0000"),
  33.         array( "Nota < 11 y > a 15", "$total_notas2", "#00FF00"),
  34.         array( "Nota >= a 16", "$total_notas3", "#0000FF")
  35. );
  36. $maximo = 0;
  37. foreach ( $datosTabla as $ElemArray ) { $maximo += $ElemArray[1]; }
  38. ?>
  39. <body>
  40. <table width="434" height="22" border="0">
  41.   <tr>
  42.     <td width="121"><div align="center" class="Estilo1">Promedio </div></td>
  43.     <td width="153"><div align="center" class="Estilo1">Porcentaje</div></td>
  44.     <td width="125"><div align="center" class="Estilo1">Gr&aacute;fico</div></td>
  45.   </tr>
  46. </table>
  47. <table width="483" height="27" cellpadding="2" cellspacing="0">
  48. <?php foreach( $datosTabla as $ElemArray ) {
  49. $porcentaje = round((( $ElemArray[1] / $maximo ) * 100),2);
  50.  
  51. ?>
  52. <tr>
  53.     <td width="37%"><strong><?php echo( $ElemArray[0] ) ?></strong></td>
  54.     <td width="26%"><?php echo( $porcentaje ) ?>%</td>
  55.     <td width="37%">
  56.         <table width="<?php echo($porcentaje) ?>%" bgcolor="<?php echo($ElemArray[2]) ?>">
  57.         <tr><td></td></tr>
  58.     </table>    </td>
  59.   </tr>
  60.     <?php } ?>
  61. </table>


Esta es la linea donde esta el error

$porcentaje = round((( $ElemArray[1] / $maximo ) * 100),2);
  #11 (permalink)  
Antiguo 10/07/2012, 10:52
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como hacer grafica de tarta con php

Código PHP:
Ver original
  1. if($maximo == 0) {
  2.     die('No hay información para mostrar.');
  3. }
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: estadisticas, graficos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:01.