Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Crear gráfica de barras

Estas en el tema de Crear gráfica de barras en el foro de PHP en Foros del Web. He improvisado una gráfica de barras, puede que no sea la mejor forma, pero es lo que he conseguido de manera nativa con PHP, me ...
  #1 (permalink)  
Antiguo 26/12/2018, 19:37
 
Fecha de Ingreso: enero-2008
Mensajes: 581
Antigüedad: 16 años, 10 meses
Puntos: 9
Crear gráfica de barras

He improvisado una gráfica de barras, puede que no sea la mejor forma, pero es lo que he conseguido de manera nativa con PHP, me gustaría usar una función, así cuando le pase unos valores, se genere una gráfica personalizada

Código PHP:
    $im imagecreate(100,100);
    
imagecolorallocate($im,222,222,222);
    
$blanco imagecolorallocate($im2331491);
    
imagefilledrectangle($im,1,91,8,98,$blanco);
    
imagefilledrectangle($im,11,81,18,98,$blanco);
    
imagefilledrectangle($im,21,71,28,98,$blanco);
    
imagefilledrectangle($im,31,61,38,98,$blanco);
    
imagefilledrectangle($im,41,51,48,98,$blanco);
    
imagefilledrectangle($im,51,41,58,98,$blanco);
    
imagefilledrectangle($im,61,31,68,98,$blanco);
    
imagefilledrectangle($im,71,21,78,98,$blanco);
    
imagefilledrectangle($im,81,11,88,98,$blanco);
    
imagefilledrectangle($im,91,1,98,98,$blanco);
    
// Guardar la imagen
    
imagepng($im);
    
$png ob_get_clean();
    
$uri "data:image/png;base64," base64_encode($png);
    
imagedestroy($im); 

He puesto el código anterior dentro de una función, pero no funciona
Código PHP:
    function GenerarIMG(/* En cuanto se pinte esta IMG recojo los 2 arrays y cambio las barras estáticas por un foreach */){
        
$im imagecreate(100,100); /* $HEIGHT y $width */
        
imagecolorallocate($im,222,222,222);
        
$blanco imagecolorallocate($im2331491);
        
imagefilledrectangle($im,1,91,8,98,$blanco);
        
imagefilledrectangle($im,11,81,18,98,$blanco);
        
imagefilledrectangle($im,21,71,28,98,$blanco);
        
imagefilledrectangle($im,31,61,38,98,$blanco);
        
imagefilledrectangle($im,41,51,48,98,$blanco);
        
imagefilledrectangle($im,51,41,58,98,$blanco);
        
imagefilledrectangle($im,61,31,68,98,$blanco);
        
imagefilledrectangle($im,71,21,78,98,$blanco);
        
imagefilledrectangle($im,81,11,88,98,$blanco);
        
imagefilledrectangle($im,91,1,98,98,$blanco);
        
imagepng($im);
        
$png ob_get_clean();
        
$uri "data:image/png;base64," base64_encode($png);
        
imagedestroy($im);
    } 
Código PHP:
GenerarIMG([height,width],widthBAR,[4,3,7,2,8,6]) 
Código PHP:
GenerarIMG([height,width],widthBAR,[6,3,7,3]) 

Última edición por quico5; 26/12/2018 a las 19:43
  #2 (permalink)  
Antiguo 26/12/2018, 20:04
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Crear gráfica de barras

Pongale header

Código PHP:
Ver original
  1. header ('Content-Type: image/png');
  2. /* your image code generator */
  3. imagepng($img);
  #3 (permalink)  
Antiguo 26/12/2018, 20:20
 
Fecha de Ingreso: enero-2008
Mensajes: 581
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: Crear gráfica de barras

Gracias por responder alvaro_trewhela

He omitido el HEADER, para que el navegador pueda ejecutar HTML...

Código HTML:
<img src="<?php echo image([alto,ancho],ancho_barra,[valoresBarras]) ?>" alt="">

<p>Gráfico de Matemáticas</p>
<img src="<?php echo image([100,100],8,[6,8,7,8]) ?>" alt="Media de 7.25">

<p>Gráfico de Fisica</p>
<img src="<?php echo image([100,100],8,[4,6,5]) ?>" alt="Media de 5"> 
  #4 (permalink)  
Antiguo 27/12/2018, 14:21
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Crear gráfica de barras

Cita:
Iniciado por quico5 Ver Mensaje
Gracias por responder alvaro_trewhela

He omitido el HEADER, para que el navegador pueda ejecutar HTML...
Crea un archivo que se llame codeBar.php con tu código

y haces esto

<img src="codeBar.php?data=alto,ancho,ancho_barra,valor esBarras" />

Y obten los datos así (en codeBar.php)

list($alto,$ancho,$ancho_barra,$valoresBarra) = explode(",", $_GET["data"]);

Etiquetas: barras, funcion
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 13:03.