Foros del Web » Programando para Internet » PHP »

còmo puedo graficar estadìsticas en php??

Estas en el tema de còmo puedo graficar estadìsticas en php?? en el foro de PHP en Foros del Web. Hola a todos. Es eso, còmo dice la pregunta. Alguna ayuda respecto a esto??, Esto se harìa con php?? o con què lo podrìa hacer?? ...
  #1 (permalink)  
Antiguo 22/02/2007, 15:20
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Pregunta còmo puedo graficar estadìsticas en php??

Hola a todos.

Es eso, còmo dice la pregunta. Alguna ayuda respecto a esto??, Esto se harìa con php?? o con què lo podrìa hacer??

Gracias de antemano.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 22/02/2007, 15:32
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: còmo puedo graficar estadìsticas en php??

Pues te podrias apoyar en jpgraph ,para hacer la gráficas

Saludillos.
  #3 (permalink)  
Antiguo 22/02/2007, 15:55
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: còmo puedo graficar estadìsticas en php??

Mauled gracias.

Déjame mirarla y si algo, comento de nuevo.

Gracias de nuevo.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 22/02/2007, 16:34
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 2 meses
Puntos: 5
Re: còmo puedo graficar estadìsticas en php??

dale un vistazo a este link...

http://www.washeebo.com/sargento/03_....php?pag=2#dcs

Te sera muy util para lo que andas buscando

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #5 (permalink)  
Antiguo 22/02/2007, 16:50
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: còmo puedo graficar estadìsticas en php??

Gracias a ti también xyyy7.

Luego les comento!!!

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 09/04/2007, 11:41
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: còmo puedo graficar estadìsticas en php??

Hola todos, recien voy a revisar lo que es el JGRAPH, pero yo tengo una grafica de barras que me corre excelente, pero a partir de los datos que tengo en esta grafica, queria realizar una de pasteles, y no es dificil, para eso tengo mis variables:

$menores
$trece
$quince
$dieciocho

.
.
.
y asi sucecivamente, estas variables contienen la cantidad de personas que se encuentran en esa edad.

para crear una grafica de pastel, llamo a grahppastel.php de la siguiente forma:

graphpastel.php?dato=<?php echo $menor;?>,<?php echo $trece;?>,<?php echo $quince;?.........>
De esta forma utilizo los datos de mi anterior grafica de barras para crear una en pastel, el unico problema es que no me muestra las leyendas de los pedazos del pastel que crea, como puedo hacer eso?? Este es el archivo:

GRAPHPASTEL.PHP

Código PHP:
<?
Header
"Content-type: image/png");
//Header( "Content-type: image/jpeg");
require("grab_globals.lib.php");

if(
$bkg == ""$bkg="FFFFFF";
if(
$wdt == ""$wdt=200;
if(
$hgt == ""$hgt=100;

    
$por = array();
    
$dato = array();
    
$dato split(","str_replace(" ","",$dat));

    
/* crea imagen */
    
$image imagecreate($wdt +1,$hgt+21);

    
// librerias de Colores y Funciones
    
include('libcolores.php');
    include(
'libfunciones.php');

    
sscanf($bkg"%2x%2x%2x"$rr$gg$bb);
    
$colorbkg ImageColorAllocate($image,$rr,$gg,$bb);

    
// crea bkg blanco
    
ImageFilledRectangle($image,0,0,$wdt +1,$hgt+21,$colorbkg);

    
$nvars 0;
    foreach (
$dato as $valor) {
          
$total += $dato[$i];
        
$nvars++;
    }

    for (
$i 0;$i $nvars;$i++)
        
$total += $dato[$i];

    for (
$i 0;$i $nvars;$i++)
        
$por[$i] = ($dato[$i] * 360) / $total;

    
$inicio 0;
    
$final 0;

    for (
$j = ($hgt/2)+15;$j $hgt/2;$j--) {
        for (
$i 0$c 6;$i $nvars;$i++,$c+=3) {
            
$final += $por[$i];
            
imagefilledarc ($image$wdt/2$j$wdt$hgt$inicio$final$colores[$c], IMG_ARC_PIE);
            
$inicio $final;
        }
    }

    
$inicio 0;
    
$final 0;

    for (
$i 0$c 5;$i $nvars;$i++, $c+=3) {
        
$final += $por[$i];
        
imagefilledarc ($image$wdt/2$hgt/2$wdt$hgt$inicio$final$colores[$c], IMG_ARC_PIE);
        
$inicio $final;
    }

/* Realiza la generacion del grafico */
ImagePNG($image);
//ImageJPEG($image,'',100);

/* Vacia la memoria */
ImageDestroy($image);
?>
Espero una respuesta, gracias!
  #7 (permalink)  
Antiguo 09/04/2007, 13:19
 
Fecha de Ingreso: julio-2004
Mensajes: 44
Antigüedad: 19 años, 8 meses
Puntos: 0
Re: còmo puedo graficar estadìsticas en php??

amigo makeitslow,

probe tu codigo y no me funciona sera pq tu tiene algo especifico es estos archivos que le da el funcionamiento:

// librerias de Colores y Funciones
include('libcolores.php');
include('libfunciones.php');

require("grab_globals.lib.php");

de ser asi podrias publicarlo?

Tambien le ubique un error aqui:

Código PHP:
$por = array();
$dato = array();
$dato split(","str_replace(" ","",$dat)); 
La variable dato esta mal escrita dentro del split.
  #8 (permalink)  
Antiguo 09/04/2007, 20:34
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: còmo puedo graficar estadìsticas en php??

Gracias TUWEB por tu observacion, pero te comento que ese error se me paso por alto, en otras palabras nunca me afecto, la grafica funciona perfectamtente, cosa rara no??? De todos modos te dejo los archivos que necesitas para ejecutar los graficos:

LIBFUNCIONES.PHP
Código PHP:
<?

$esquinas 
= array();

/* Funciones utilizadas */
function CargaEsquinas($xsi$ysi$xii$yii$xid$yid$xsd$ysd){
    
$esquinas[0] = $xsi;
    
$esquinas[1] = $ysi;
    
$esquinas[2] = $xii;
    
$esquinas[3] = $yii;
    
$esquinas[4] = $xid;
    
$esquinas[5] = $yid;
    
$esquinas[6] = $xsd;
    
$esquinas[7] = $ysd;
    return 
$esquinas;
    }

?>
LIBCOLORES.PHP

Código PHP:
<?

    
/* Paleta de colores */
    
$colores = array();
    
$colores[0] = ImageColorAllocate($image,0,0,0);        // Negro
    
$colores[1] = ImageColorAllocate($image,100,100,100);  // Gris oscuro
    
$colores[2] = ImageColorAllocate($image,160,160,160);  // Gris medio
    
$colores[3] = ImageColorAllocate($image,220,220,220);  // Gris claro
    
$colores[4] = ImageColorAllocate($image,255,255,255);  // blanco

    
$colores[5] = ImageColorAllocate($image,255,0,0);      // Rojo
    
$colores[6] = ImageColorAllocate($image,180,0,0);      // Rojo obscuro
    
$colores[7] = ImageColorAllocate($image,255,150,150);  // Rojo claro

    
$colores[8] = ImageColorAllocate($image,36,171,232);      // Azul dos
    
$colores[9] = ImageColorAllocate($image,25,139,190);      // Azul dos obscuro
    
$colores[10] = ImageColorAllocate($image,127,200,233);  // Azul dos claro

    
$colores[11] = ImageColorAllocate($image,47,208,51);      // Verde
    
$colores[12] = ImageColorAllocate($image,0,180,0);      // Verde obscuro
    
$colores[13] = ImageColorAllocate($image,150,255,150);  // Verde claro

    
$colores[14] = ImageColorAllocate($image,234,33,222);      // Rosa
    
$colores[15] = ImageColorAllocate($image,181,31,172);      // Rosa obscuro
    
$colores[16] = ImageColorAllocate($image,242,125,235);  // Rosa claro

    
$colores[17] = ImageColorAllocate($image,255,168,32);      // Naranja
    
$colores[18] = ImageColorAllocate($image,226,141,7);      // Naranja obscuro
    
$colores[19] = ImageColorAllocate($image,247,186,91);  // Naranja claro

    
$colores[20] = ImageColorAllocate($image,166,61,255);      // Morado
    
$colores[21] = ImageColorAllocate($image,130,22,221);      // Morado obscuro
    
$colores[22] = ImageColorAllocate($image,187,108,253);  // Morado claro

    
$colores[23] = ImageColorAllocate($image,147,147,147);      // Gris
    
$colores[24] = ImageColorAllocate($image,131,131,131);      // Gris obscuro
    
$colores[25] = ImageColorAllocate($image,204,204,204);  // Gris claro

    
$colores[26] = ImageColorAllocate($image,0,0,255);      // Azul
    
$colores[27] = ImageColorAllocate($image,0,0,180);      // Azul obscuro
    
$colores[28] = ImageColorAllocate($image,150,150,255);  // Azul claro

    
$colores[29] = ImageColorAllocate($image,211,226,44);      // Amarillo
    
$colores[30] = ImageColorAllocate($image,176,189,31);      // Amarillo obscuro
    
$colores[31] = ImageColorAllocate($image,233,244,115);  // Amarillo claro

    
$colores[32] = ImageColorAllocate($image,227,130,45);      // Naranja dos
    
$colores[33] = ImageColorAllocate($image,193,112,39);      // Naranja dos obscuro
    
$colores[34] = ImageColorAllocate($image,211,154,104);  // Naranja dos claro

?>
y por ultimo el GRAB_GLOBALS.LIB.PHP

Código PHP:
<?php
/* $Id: grab_globals.lib.php,v 1.8 2002/08/12 08:43:45 rabus Exp $ */


/**
 * This library grabs the names and values of the variables sent or posted to a
 * script in the '$HTTP_*_VARS' arrays and sets simple globals variables from
 * them. It does the same work for the $PHP_SELF variable.
 *
 * loic1 - 2001/25/11: use the new globals arrays defined with php 4.1+
 */
if (!defined('PMA_GRAB_GLOBALS_INCLUDED')) {
    
define('PMA_GRAB_GLOBALS_INCLUDED'1);

    if (!empty(
$_GET)) {
        
extract($_GETEXTR_OVERWRITE);
    } else if (!empty(
$HTTP_GET_VARS)) {
        
extract($HTTP_GET_VARSEXTR_OVERWRITE);
    } 
// end if

    
if (!empty($_POST)) {
        
extract($_POSTEXTR_OVERWRITE);
    } else if (!empty(
$HTTP_POST_VARS)) {
        
extract($HTTP_POST_VARSEXTR_OVERWRITE);
    } 
// end if

    
if (!empty($_FILES)) {
        while (list(
$name$value) = each($_FILES)) {
            $
$name $value['tmp_name'];
        }
    } else if (!empty(
$HTTP_POST_FILES)) {
        while (list(
$name$value) = each($HTTP_POST_FILES)) {
            $
$name $value['tmp_name'];
        }
    } 
// end if

    
if (!empty($_SERVER) && isset($_SERVER['PHP_SELF'])) {
        
$PHP_SELF $_SERVER['PHP_SELF'];
    } else if (!empty(
$HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS['PHP_SELF'])) {
        
$PHP_SELF $HTTP_SERVER_VARS['PHP_SELF'];
    } 
// end if

    // Securety fix: disallow accessing serious server files via "?goto="
    
if (isset($goto) && strpos(' ' $goto'/') > && substr($goto02) != './') {
        unset(
$goto);
    } 
// end if

// $__PMA_GRAB_GLOBALS_LIB__
?>
EStuve revisando los graficos de JPGRAPH y recien me di cuenta que para crear las graficas, tenemos que llamar al archivo PHP respectivo al tipo de grafica, como si fuera una imagen en otro archivo PHP.

Alguien sabe como puedo pasarle datos al php de la grafica??

Última edición por makeitslow; 09/04/2007 a las 20:54 Razón: Simplificar la pregunta y evitar la redundancia, tambien por que mi amor queria leer el mensaje anterior que habia escrito.
  #9 (permalink)  
Antiguo 10/04/2007, 11:58
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: còmo puedo graficar estadìsticas en php??

Hola a todos, estuve revisando lo de JGRAPH y no importa si llamamos a la grafica como una imagen, aun asi podemos pasarles datos dentro las etiquetas [IMG], o sea de esta manera:

Código PHP:
<img src="grafico_tarta.php?data=<?php echo $datosTabla1;?>&nombres=<?php echo $datosTabla2;?>
Donde:

$datosTabla1; es un array que lo definimos como quedramos con el contenido numerico. Que se asigna al array data del archivo GRAFICO_TARTA.PHP

$datosTabla2; es un array que lo definimos tambien como quedramos con el contenido de las leyendas. Que se asigna al array nombres del archivo GRAFICO_TARTA.PHP


Ahora solo me quedo un detalle pendiente...

Si tengo un array con el contenido de una consulta de MySql, como puedo asignar todo su contenido en variables????

Digamos que tengo un array que es $datos y contiene "Nombre1, Nombre2, Nombre3" que vienen de una consulta anterior digamos SELECT nombre FROM persona WHERE algo=otro;

Quisiera que el contenido de $datos, lo asigne a:

$variable1 con el contenido Nombre1
$variable2 con el contenido Nombre2
$variable3 con el contenido Nombre3

Obviamente se que puedo hacerlo con un ciclo FOR, salvo que no se como crear las variables y sacarlas del arreglo, es que creo que no puedo llamar al contenido de la forma tradicional $datos[i].
  #10 (permalink)  
Antiguo 14/04/2007, 11:55
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: còmo puedo graficar estadìsticas en php??

Ya solucione mi problema de pasarle un array de resultado de consulta MYSQL a la grafica de JGRAPH, resulta que el array obtenido por consulta mysql, son bastante variables, o sea creo que no se puede trabajar directamente con ellos para mandarselos a la grafica de estadisticas, tienen que ser un array simple, para eso entonces si hacemos una consulta MYSQL con MYSQL_FETCH_ARRAY, el resultado tenemos que copiarlo a un array simple, y yo lo hice tal vez de la manera mas rustica, pero tal vez le sirva a alguien y es asi:

Tenemos el archivo de PASTEL por ejemplo, que es el GRAFICO_TARTA.PHP (Que viene con el JGRAPH que ya lo sugirieron AQUI)

GRAFICO_TARTA.PHP<?php
Código PHP:
session_start();

//Estas librerias vienen con el JGRAPH
include ("jpgraph.php"); 
include (
"jpgraph_pie.php"); 
include (
"jpgraph_pie3d.php"); 

//Definimos un array vacio para recibir un array de otro lado 
para los datos numericos
$data 
= array();

//Le asignamos el valor de un array, 
definido como variable de sesion anteriormente
$data 
$_SESSION['nums'];

$graph = new PieGraph(510,250,"auto"); 
$graph->img->SetAntiAliasing(); 
$graph->SetMarginColor('white'); 

$p1 = new PiePlot3D($data); 
$p1->SetSize(0.40); 
$p1->SetCenter(0.3); 

$p1->value->SetFont(FF_FONT1,FS_BOLD); 
$p1->value->SetColor("white"); 
$p1->SetLabelPos(0.2); 

//Definimos un array vacio para recibir un array de otro lado 
para los datos de textoo sea los nombres para las leyendas
$nombres 
= array();

//Le asignamos el valor de un array,
definido como variable de sesion anteriormente

$nombres 
$_SESSION['noms'];

$p1->SetLegends($nombres); 
$p1->ExplodeAll(); 

$graph->Add($p1); 
$graph->Stroke(); 
?> 
Con esta modificacion en el archivo GRAFICO_TARTA.PHP (Que se puede aplicar a los otros graficos de JGRAPH), cuando quedramos llamar al archivo para graficar con nuestros datos solo tenemos que hacerlo asi:

Código PHP:
<img src="grafico_tarta.php?data=<?php echo $datosTabla1;?>&nombres=<?php echo $datosTabla2;?>" border="1">
Donde $datosTabla1 y $datosTabla2 son array que los obtenemos de una consulta o los definimos nosotros mismos.

Si los obtenemos de una consulta, pues tenemos que manejarlos asi:

Código PHP:
$sql1="select NOMBRES from TABLA1 where algo= OTRO";
$sql2="select NUMERO from TABLA2 where otro= ALGO";

$res1=MYSQL_QUERY$sql1 );
$res2=MYSQL_QUERY$sql2 );

$datosTabla1 = array();
$datosTabla2 = array();
    
for(
$i=0;$i<$NUMEROTOTAL1;$i++)
{
$reg1=MYSQL_FETCH_ARRAY$res1 );
$datosTabla2[$i] = $reg1['NOMBREDELCAMPO1'];
}
$_SESSION['noms']=$datosTabla2;
        
for(
$i=0;$i<$NUMEROTOTAL2;$i++)
{
$reg2=MYSQL_FETCH_ARRAY$res2 );
$datosTabla1[$i] = $reg2['NOMBREDELCAMPO2'];
}
$_SESSION['nums']=$datosTabla1
Y asi ya podemos mandarlos a:
Código PHP:
<img src="grafico_tarta.php?data=<?php echo $datosTabla1;?>&nombres=<?php echo $datosTabla2;?>" border="1">
Y obviamente si $datosTabla1 y $datosTabla2 los llenamos manualmente, no hay nada que hacer.

Espero les sirva!

Gracias a todos por su ayuda!
  #11 (permalink)  
Antiguo 03/05/2007, 21:16
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: còmo puedo graficar estadìsticas en php??

Hola de nuevo, alguien sabe como modificar la TABLA de LEYENDAS del JGRAPH??

Queria aumentar el tamaño.. puesto que el tamaño de la letra para la lista de NOMBRES de LEYENDAS me resultan muy grandes y no entran completas.

ME refiero a agrandar el tamaño del cuadro donde esta la lista de LEYENDAS.

Gracias!

EDITADO: La caja de las leyendas, solamente se puede acomodar por coordenadas, editandolas en el archivo respectivo (Pie -JGRAPH_PIE.PHP, Barras - JGRAPH_BAR.PHP, Radio - JGRAPH_RADAR.PHP, Etc.)... el tamaño se ajusta automaticamente al contenido de las leyendas.

Última edición por makeitslow; 06/05/2007 a las 20:25 Razón: Auto Respuesta
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 14:24.