Foros del Web » Programando para Internet » PHP »

crear grafico de barras desde php

Estas en el tema de crear grafico de barras desde php en el foro de PHP en Foros del Web. hola, quiero saber como puedo hacer para generar un grafico de barras en php con porcentajes extraidos de una base de datos. ya tengo los ...
  #1 (permalink)  
Antiguo 30/12/2009, 08:42
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 1
Exclamación crear grafico de barras desde php

hola, quiero saber como puedo hacer para generar un grafico de barras en php con porcentajes extraidos de una base de datos.
ya tengo los datos que quiero mostrar pero no se como generar la imagen.
  #2 (permalink)  
Antiguo 30/12/2009, 08:44
 
Fecha de Ingreso: mayo-2007
Mensajes: 60
Antigüedad: 17 años, 6 meses
Puntos: 3
Respuesta: crear grafico de barras desde php

necesitas una libreria para generarlas. Te recomiendo que te bajes JpGraf que es muy completa y bastante sencilla.
  #3 (permalink)  
Antiguo 30/12/2009, 09:01
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: crear grafico de barras desde php

no lo puedo generar con codigo??? o la unica forma es con librerias????
  #4 (permalink)  
Antiguo 30/12/2009, 10:02
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 7 meses
Puntos: 7
Respuesta: crear grafico de barras desde php

siiii con tablas se puede pero seria como dices de barras y no de columnas DX

trabajar con el with y el height

con ello le asignas un largo deacuerdo a lo que necesites, yo una vez hice algo asi :P!!!
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #5 (permalink)  
Antiguo 30/12/2009, 10:47
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 15 años, 4 meses
Puntos: 13
Respuesta: crear grafico de barras desde php

voy por la librería
a mi parecer ChartDirector es la mejor!!
__________________
Mi Bosque de Sombras Solo Doom Metal!

por favor use esta etiqueta para publicar su código --->[HIGHLIGHT]
  #6 (permalink)  
Antiguo 30/12/2009, 10:53
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 11 meses
Puntos: 16
Respuesta: crear grafico de barras desde php

Yo uso esta. Sencillamente impresionante. Le entregas un xml y te da la luna.
http://www.maani.us/xml_charts/index.php?menu=Introduction
  #7 (permalink)  
Antiguo 31/12/2009, 06:05
 
Fecha de Ingreso: abril-2009
Ubicación: En dust 2
Mensajes: 149
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: crear grafico de barras desde php

Con html y hojas de estilo se pueden montar graficos curiosos, pero como dice nuestro amigo aaronaaron, si existe una herramienta que te ayuda a crearlas utilizala.
  #8 (permalink)  
Antiguo 31/12/2009, 06:20
Avatar de el_gustavo  
Fecha de Ingreso: mayo-2009
Mensajes: 117
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: crear grafico de barras desde php

http://teethgrinder.co.uk/open-flash-chart-2/
Fijate tiene tutoriales y librerias no solo para php sino para javascript (podes usar ajax), etc.
  #9 (permalink)  
Antiguo 01/01/2010, 16:48
Avatar de Yefb  
Fecha de Ingreso: septiembre-2008
Ubicación: Medellín
Mensajes: 55
Antigüedad: 16 años, 2 meses
Puntos: 1
De acuerdo Respuesta: crear grafico de barras desde php

Yo también utilizo JpGraph, es muy completo, te recomiendo que utilizes una librería que ya esté desarrollada y le realizes las modificaciones que tú creas pretinentes.
Piensa en una premisa: Si la rueda ya está inventada...¿Para qué la quieres reinventar?
Un saludo y mucha suerte.
  #10 (permalink)  
Antiguo 05/01/2010, 07:52
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: crear grafico de barras desde php

me ayudaron mucho ,pero me gustaria, si alguien conoce un tutorial del programita jpgraph, que me pase la data si esta en ingles no importa mientras que explique bien. bueno desde ya muchas gracias.

Última edición por marcos0586; 05/01/2010 a las 09:04
  #11 (permalink)  
Antiguo 05/01/2010, 09:26
 
Fecha de Ingreso: enero-2010
Mensajes: 127
Antigüedad: 14 años, 10 meses
Puntos: 2
Mira esto si es un grafico de barras con php es muy facil hacer eso te voy a dar un ejemplo para que lo entiendas:

- En una pagina web se tiene 2 respuesta a una consulta y son: Si y NO y la pregunta es ¿Te parece que el diseño es el correcto?. la gente ahi apretara si o no mediante un radiobuttton el cual uno tendra un Value="Si" y el otro un Value="No" al apretar el radiobutton y darle a u boton submit que diga votar este hace lo siguiente (El radiobutton se llaman voto):

(Genera una tabla en mysql que se llame voto la cual va a tener 3 campos id_tabla, total_si, total_no. En la cual el id:tabla va a ser igual a 1 y total_si y total_no a 0).

lo que voy hacer aqui es traerme cuanto votos tiene si y cuantos tiene no
$q = "SELECT total_si, total_no FROM voto WHERE id_tabla=1";
$query = mysql_query($q);
$row = Mysql_fetch_array($query);

if($_REQUEST['voto']==1)
{
$i=$row['total_si'];
$i=$i+1;
$q="UPDATE voto SET total_si = ".$i." WHERE id_tabla=1";
$query=mysql_query($q);
}
else
{
$i=$row['total_no'];
$i=$i+1;
$q="UPDATE voto SET total_no = ".$i." WHERE id_tabla=1";
$query=mysql_query($q);
}

Una vez hecho esto hago otro SELECT pa traerme los campos actualizados:

$q = "SELECT total_si, total_no FROM voto WHERE id_tabla=1";
$query = mysql_query($q);
$row = Mysql_fetch_array($query);

luego en esa misma pagina hago lo siguiente tabla y columnas de esta manera y con el codigo de PHP incluido y listo te genera tu tabla de 2 columnas:

<?
$votos_totales=$row['total_si']+$row['total_no'];
$total_si=($row['total_si']*100)/$votos_totales; // Una regla de 3 pa conocer el porcentaje
$total_no=($row['total_no']*100)/$votos_totales; // Una regla de 3 pa conocer el porcentaje

//Ahora calculamos los pieles a aumentar segun su porcentaje:

$aumento_si=$total_si*2;
$aumento_no=$total_no*2;

// Esos aumentos son los valores que se van a colocar en height de cada tabla.
?>

<div align="center">
<table width="500" border="1">
<tr>
<td valign="bottom">
<div align="center">
<table width="50" height="<? echo $aumento_si;?>" border="0">
<tr>
<td bgcolor="#FFFF00"></td>
</tr>
</table>
</div>
</td>
<td valign="bottom">
<div align="center">
<table width="50" height="<? echo $aumento_no;?>" border="0">
<tr>
<td bgcolor="#FF0000"></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
<table width="500" border="1">
<tr>
<td width="242"><div align="center">Si</div></td>
<td width="242"><div align="center">No</div></td>
</tr>
</table>
</div>

Listo eso te va a generar un grafico de barras de 2 columnas si lo quieres hacer de mas opciones solo le haces ciertos cambios siguiendo el modelo..

No necesitas libreria pa eso que te di eso es a puro codigo

Última edición por GatorV; 06/01/2010 a las 10:25
  #12 (permalink)  
Antiguo 05/01/2010, 11:07
Avatar de el_gustavo  
Fecha de Ingreso: mayo-2009
Mensajes: 117
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: crear grafico de barras desde php

2 pregunta en una sola, ojala no solo facil de responder para aquellos eruditos en el tema sino satisfactoria.
1)Se puede tener dos graficos en una misma pagina con esas librerias (jpgraph)???
2)Si se puede como se hace??

Tome uno de los ejemplos, lo "duplique" en el codigo mismo y nada, un solo grafico aparece.

-------------------------------------------
Si se puede mas de 1 grafico por pagina, lo que no se puede es eliminar este comentario.

Última edición por el_gustavo; 05/01/2010 a las 11:39
  #13 (permalink)  
Antiguo 06/01/2010, 08:20
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: crear grafico de barras desde php

Cita:
Iniciado por jgames88 Ver Mensaje
No necesitas libreria pa eso que te di eso es a puro codigo
JGAMES88 gracias, es muy bueno tu aporte pero...seria un abuso???si te pregunto como tengo que hacer para generar lo mismo pero con mas datos y no solo con dos barras, es decir que pueda ver por ejemplo los porcentaje de los productos del mismo proveedor o algo asi, bueno espero que me puedan ayudar, muchas gracias.

Última edición por marcos0586; 06/01/2010 a las 08:26
  #14 (permalink)  
Antiguo 06/01/2010, 12:29
 
Fecha de Ingreso: enero-2010
Mensajes: 127
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: crear grafico de barras desde php

Mira voy hacer uno de 4 columnas y despues comparas y te fijas como agregue las 2 nuevas columnas, es facil lo vas a ver a simple vista:

Ejemplo:

- Se tiene una encuesta en una pagina web la cual pregunta: ¿Qué le parece la página web?, la cual tiene como respuestas 4 opciones y son:

- Excelente.
- Buena.
- Regular.
- Mala.

El formulario de la encuenta es asi:

Código HTML:
<div align="center">&iquest;Qu&eacute; le parece la p&aacute;gina?<br />
  <br />
  <form id="form1" name="form1" method="post" action="proceso.php">
    <p>
      <label>
        <input type="radio" name="opciones" value="excelente" />
        Excelente</label>
      <br />
      <label>
        <input type="radio" name="opciones" value="bueno" />
        Bueno</label>
      <br />
      <label>
        <input type="radio" name="opciones" value="regular" />
        Regular</label>
      <br />
      <label>
        <input type="radio" name="opciones" value="malo" />
        Malo</label>
      <br />
      <label>
      <input type="submit" name="Submit" value="Votar" />
      </label>
    </p>
  </form>
</div> 
Ese formulario nos va a enviar a una nueva página web la cual va aprocesar los datos que se llame proceso.php. En la página proceso.php nos vamos a traer los votos totales de las 4 categorias, cada categoria es un campo de la tabla votos:

Código PHP:
<?
$q 
"SELECT excelente, bueno, regular, bueno FROM votos WHERE id=1";
$query mysql_query($q);
$row mysql_fetch_array($query);

//Ahora segun el voto de la persona actualizamos el campo al cual vaya el voto.

$i=0;

if(
$_REQUEST['opciones']=="excelente")
{
    
$i $row['excelente']+1;
    
$q "UPDATE votos SET excelente = ".$i." WHERE id=1";
    
$query mysql_query($q);
}
else
if(
$_REQUEST['opciones']=="bueno")
{
    
$i $row['bueno']+1;
    
$q "UPDATE votos SET bueno = ".$i." WHERE id=1";
    
$query mysql_query($q);
}
else
if(
$_REQUEST['opciones']=="regular")
{
}
    
$i $row['regular']+1;
    
$q "UPDATE votos SET regular = ".$i." WHERE id=1";
    
$query mysql_query($q);
else
if(
$_REQUEST['opciones']=="malo")
{
    
$i $row['malo']+1;
    
$q "UPDATE votos SET malo = ".$i." WHERE id=1";
    
$query mysql_query($q);
}

//Una vez que se actualizan las tablas se va a generar las columnas en este caso 4.
//Nos traemos los valores actualizados con un SELECT

$q "SELECT excelente, bueno, regular, bueno FROM votos WHERE id=1";
$query mysql_query($q);
$row mysql_fetch_array($query);

//Se saca una regla de tres para conocer el porcentaje de cada columna.

$votos_totales $row['excelente']+$row['bueno']+$row['regular']+$row['malo'];
$porcentaje_excelente = ($row['excelente']*100)/$votos_totales
$porcentaje_bueno = ($row['bueno']*100)/$votos_totales
$porcentaje_regular = ($row['regular']*100)/$votos_totales
$porcentaje_malo = ($row['malo']*100)/$votos_totales

//Por ultimo calculamos los pixeles de aumento de las columnas.
//Cada 1% lo voy a poner igual a 2 pixeles.

$aumento_excelente $porcentaje_excelente*2;
$aumento_bueno $porcentaje_bueno*2;
$aumento_regular $porcentaje_regular*2;
$aumento_malo $porcentaje_malo*2;
?>
Por ultimo se construye las columnas

Código HTML:
<div align="center">
<table width="700" border="1">
<tr>
<td width="170" valign="bottom">
<div align="center">
<table width="50" height="<? echo $aumento_excelente;?>" border="0">
<tr>
<td bgcolor="#FFFF00"></td>
</tr>
</table>
</div></td>
<td width="184" valign="bottom">
<div align="center">
<table width="50" height="<? echo $aumento_bueno;?>" border="0">
<tr>
<td bgcolor="#FF0000"></td>
</tr>
</table>
</div></td>
<td width="164" valign="bottom"><div align="center">
<table width="50" height="<? echo $aumento_regular;?>" border="0">
<tr>
<td bgcolor="#FFFF00"></td>
</tr>
</table>
</div></td>
<td width="154" valign="bottom"><div align="center">
<table width="50" height="<? echo $aumento_malo;?>" border="0">
<tr>
<td bgcolor="#FFFF00"></td>
</tr>
</table>
</div></td>
</tr>
</table>
<table width="700" border="1">
<tr>
<td width="169"><div align="center"><? echo $porcentaje_excelente." %"; ?></div></td>
<td width="184"><div align="center"><? echo $porcentaje_bueno." %"; ?></div></td>
<td width="165"><div align="center"><? echo $porcentaje_regular." %"; ?></div></td>
<td width="154"><div align="center"><? echo $porcentaje_malo." %"; ?></div></td>
</tr>
</table>
<table width="700" border="1">
<tr>
<td width="169"><div align="center">Excelente</div></td>
<td width="184"><div align="center">Bueno</div></td>
<td width="165"><div align="center">Regular</div></td>
<td width="154"><div align="center">Malo</div></td>
</tr>
</table>
</div> 
Listo aqui se tiene un generador de graficos de barras de 4 columnas.
  #15 (permalink)  
Antiguo 07/01/2010, 07:36
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: crear grafico de barras desde php

hola gente ante todo muchas gracias por la data que subieron, me sirvio muchisimo, de echo, gracias a ustedes pude agregar el jpgraph y ver los ejemplos pero ahora me gustaria saber como puedo hacer para agregarle mis datos (que ya tengo en un array calculado) y que me muestre los datos que yo le agrego ya que cambie los datos porque me muestra siempre lo mismo. y como se que grafico es ya que no veo una imagen hasta que la agrego y la subo a la pagina, ayuda por favor ya que estoy emocionado con los graficos pero lamentablemente soy muy ignorante sobre el tema.
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 21:43.