Graficos de barras en php

Iniciado por inquilin@19, 11 Noviembre 2011, 17:03 PM

0 Miembros y 1 Visitante están viendo este tema.

inquilin@19

Hola a todos, vereis, tengo que hacer un script php con un gráfico de barras horizontales o verticales (como prefiera), he estado mirando las funciones de ImageFilledRectangle para crear las barras pero me las pone todas juntas, he visto que cada valor que damos en el rectángulo tiene que tener un numero determinado para que no se vean, eso lo estoy solucionando pero mi cuestion es, ¿Como puedo hacer para que esas barras tengan aspecto de grafico y ponerlas separadas, 20 pixeles, por ejemplo¿?
Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten

dark_sargon

Hola inquilin@19 :)
Podrías hacer un plano con lineas, valores y las barras. Para separar las barras 20px debes usar los atributos de la función ImageFilledRectangle() ya que esta recibe dos puntos para gráficar el rectángulo, pronto agregaré un ejemplo en éste tema.
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

inquilin@19

Gracias por la información, al final conseguí hacer algo con las barras, aquí tienes el codigo por si te sirve para algo
<?php
$myImage 
ImageCreate(300,300);
$white ImageColorAllocate($myImage255255255);
$red  ImageColorAllocate($myImage25500);
$green ImageColorAllocate($myImage02550);
$blue ImageColorAllocate($myImage00255);
ImageFilledRectangle($myImage7018010010$blue);
ImageFilledRectangle($myImage15018012050$green);
ImageFilledRectangle($myImage20018017075$red);
header ("Content-type: image/png");
ImagePng($myImage);
ImageDestroy($myImage);
?>

Con esto he conseguido hacer tres barras de colores, con la misma separación, estuve unas dos horas y media para que me saliera esto, asi que lo de que fueran 20 pixeles no se si estará cumplido
Un saludo
Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten

dark_sargon

Te felicito, algunos usuarios solo esperan a que hagan el trabajo por ellos :)
Yo haría una gráfica de barras algo así:
Código (php) [Seleccionar]
<?php
$myImage 
ImageCreate(400,300);

$white ImageColorAllocate($myImage255255255);
$yellow  ImageColorAllocate($myImage2552550);
$red  ImageColorAllocate($myImage25500);
$green ImageColorAllocate($myImage02550);
$blue ImageColorAllocate($myImage00255);
$darkgray ImageColorAllocate($myImage127127127);
$black ImageColorAllocate($myImage000);

$fuente "arial.ttf";


imageline ($myImage50240260240$darkgray);
imageline ($myImage504050240$darkgray);

imagettftext($myImage10026243$black$fuente"  0");
imagettftext($myImage10026210$black$fuente" 20");
imagettftext($myImage10026177$black$fuente" 40");
imagettftext($myImage10026144$black$fuente" 60");
imagettftext($myImage10026111$black$fuente" 80");
imagettftext($myImage1002678$black$fuente"100");


//Los datos llegan de 0 a 100 (porcentaje)
$numero1 20;
$numero2 40;
$numero3 60;
$numero4 100;

$dato1 240-(((240-75)/100)*$numero1);
$dato2 240-(((240-75)/100)*$numero2);
$dato3 240-(((240-75)/100)*$numero3);
$dato4 240-(((240-75)/100)*$numero4);

ImageFilledRectangle($myImage7024090$dato1-1$darkgray);
ImageFilledRectangle($myImage7123989$dato1$blue);

ImageFilledRectangle($myImage110240130$dato2-1$darkgray);
ImageFilledRectangle($myImage111239129$dato2$red);

ImageFilledRectangle($myImage150240170$dato3-1$darkgray);
ImageFilledRectangle($myImage151239169$dato3$green);

ImageFilledRectangle($myImage190240210$dato4-1$darkgray);
ImageFilledRectangle($myImage191239209$dato4$yellow);

header ("Content-type: image/png");
ImagePng($myImage);
ImageDestroy($myImage);
?>


Recuerda agregar el archivo arial.ttf en el mismo directorio de tu .php
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

inquilin@19

GRacias de nuevo, está muy bien el script.
Reconozco que soy un gran pato en esto del php (me fastidia más saber que me van a examinar de ello y que dependa de ello que tenga un título o no) pero si alguno de los simples scripts que hago le sirven a alguien, dare la tarea bien hecha.
:D Saudos!
Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten

dark_sargon

Es verdad, a veces nos obligan a aprender cosas para poder obtener un titulo. Si sabes que despues no lo necesitas, se siente mal. Pero qué bueno que te estés esforzando y quieras ayudar a alguien más :-)

PD. Yo también soy pato para esto peri trato de entender bien la documentación.
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.