elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Grafica de barras (no scripts de terceros)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Grafica de barras (no scripts de terceros)  (Leído 2,933 veces)
sionoo

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Grafica de barras (no scripts de terceros)
« en: 12 Junio 2010, 21:26 pm »

hola, que tal.

Necesito su ayuda, no llevo mucho trabajando ocn PHP y me pidieron que realizara un sistema que mostrara los resultados en tablas y graficos. Con las tablas no tengo problemas pero con las graficas si.

Me podrian dar un ejemplo de como crearlas??? por favor, lo primero que hice fue usar la libreria jpgraph pero como el sistema sera de uso comercial tendriamos que comprar la licencia y es lo que no queremos (aumetar costos).

Me encontre con un pequeño script que genera graficos es muy basico pero me esta ayudando a utilizarar la libreria GD de PHP, lo adecua a mis necesitades y lo tengo asi.

Código
  1. <?php
  2.  
  3. $datay = array(2,3,-5,5,3);//datos
  4.  
  5. $barras  = count($datay);//total de barras
  6.  
  7. //Ancho y Alto de la imagen
  8. $width = 250;
  9. $height = 150;
  10.  
  11. $espacio = 5; //separacion entre barras
  12.  
  13. //ancho de las barras
  14. $barras_width = $width / $barras ;
  15.  
  16. //[b]$mas = 160;[/b]
  17.  
  18. $im        = imagecreate($width,$height[b]/*+$mas*/[/b]);//se crea imagen
  19. $lime      = imagecolorallocate ($im,154,205,50);
  20. $gray_lite = imagecolorallocate ($im,0xee,0xee,0xee);
  21. $gray_dark = imagecolorallocate ($im,0x7f,0x7f,0x7f);
  22. $white     = imagecolorallocate ($im,0xff,0xff,0xff);
  23.  
  24. //color de fondo de la imagen (gris)
  25. imagefilledrectangle($im,0,0,$width,$height[b]/*+$mas*/[/b],$gray_lite);
  26.  
  27. //Obtener el valor maximo de todo el arreglo de datos
  28. $maxv = 0;
  29. for($i=0;$i<$barras;$i++)
  30. $maxv = max($datay[$i],$maxv);
  31.  
  32. //generar cada barra y mostrala en pantalla
  33. for($i=0;$i<$barras;$i++){
  34. $barras_height = ($height / 100) * (( $datay[$i] / $maxv) *100);
  35.  
  36. $x1 = ($i)*$barras_width; //coordenada X del punto 1
  37. $y1 = $height-$barras_height; //coordenada Y del punto 1
  38. $x2 = (($i+1)*$barras_width)-$espacio; //coordenada X del punto 2
  39. $y2 = $height; //coordenada Y del punto 2
  40.  
  41. //se rrellenan las barras con un fondo color verde limon
  42. imagefilledrectangle($im,$x1,$y1,$x2,$y2,$lime);
  43. }
  44.  
  45. header ("Content-type: image/png");//cabecera para generar la imagen (PNG)
  46. imagepng($im);
  47. imagedestroy($im);//se libera la memoria utilizada por la imagen
  48. ?>

Funciona perfectamente con valores positivos, pero cuando se introducen valores negativos no se grafican (o no se greficaban). Para graficarlos se aumenta la altura (descomentando lo de negritas) pero necesito hacerlo automatico que grafique tanto valores positivos como negativos.

Asi es como se ve la grafica, es algo sencilla pero me esta ayudando.

SIN aumentar altura.


CON aumeto de altura.


Alguna idea de como realizar las graficas con la libreria GD o sin ella pero sin librerias con licencias, por que estar aumentando los tamaños no seria la opcion final ya que tendria graficas de distintos tamaños.

Otra cosa es como mostrar los ejes X , Y (valores como en excel).

------Edito

Lo siento se me olvido decir que los datos ($datay) los obtengo de una BD MySQL, para el ejemplo solo puse un arreglo de 5 valores.


« Última modificación: 12 Junio 2010, 21:37 pm por sionoo » En línea

Servia


Desconectado Desconectado

Mensajes: 346


Ver Perfil
Re: Grafica de barras (no scripts de terceros)
« Respuesta #1 en: 15 Junio 2010, 10:36 am »

Puede que esto te sirva:
http://www.terrill.ca/design/vertical_bar_graphs/

Es para hacer gráficos de barras verticales con PHP y CSS, mucho mejor que no una librería.

http://renownedmedia.com/codevault/NucleoGraph

Esta otra perece ser mejor.


« Última modificación: 15 Junio 2010, 10:44 am por Servia » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
BitCoin: fabricando dinero digital ¿a costa de terceros?
Noticias
wolfbcn 9 6,137 Último mensaje 17 Junio 2011, 01:10 am
por dantemc
Evitar que se instalen barras de navegación de terceros al instalar programas.
Seguridad
r32 3 4,024 Último mensaje 23 Julio 2012, 23:04 pm
por hacelo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines