Autor
|
Tema: Graficos de barras en php (Leído 5,102 veces)
|
inquilin@19
Desconectado
Mensajes: 81
|
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¿?
|
|
|
En línea
|
Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten
|
|
|
dark_sargon
Desconectado
Mensajes: 534
CJ
|
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.
|
|
|
En línea
|
|
|
|
inquilin@19
Desconectado
Mensajes: 81
|
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($myImage, 255, 255, 255); $red = ImageColorAllocate($myImage, 255, 0, 0); $green = ImageColorAllocate($myImage, 0, 255, 0); $blue = ImageColorAllocate($myImage, 0, 0, 255); ImageFilledRectangle($myImage, 70, 180, 100, 10, $blue); ImageFilledRectangle($myImage, 150, 180, 120, 50, $green); ImageFilledRectangle($myImage, 200, 180, 170, 75, $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
|
|
|
En línea
|
Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten
|
|
|
dark_sargon
Desconectado
Mensajes: 534
CJ
|
Te felicito, algunos usuarios solo esperan a que hagan el trabajo por ellos Yo haría una gráfica de barras algo así: <?php $fuente = "arial.ttf"; imageline ($myImage, 50, 240, 260, 240, $darkgray); imageline ($myImage, 50, 40, 50, 240, $darkgray); imagettftext($myImage, 10, 0, 26, 243, $black, $fuente, " 0"); imagettftext($myImage, 10, 0, 26, 210, $black, $fuente, " 20"); imagettftext($myImage, 10, 0, 26, 177, $black, $fuente, " 40"); imagettftext($myImage, 10, 0, 26, 144, $black, $fuente, " 60"); imagettftext($myImage, 10, 0, 26, 111, $black, $fuente, " 80"); imagettftext($myImage, 10, 0, 26, 78, $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); header ("Content-type: image/png"); ?>
Recuerda agregar el archivo arial.ttf en el mismo directorio de tu .php
|
|
|
En línea
|
|
|
|
inquilin@19
Desconectado
Mensajes: 81
|
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. Saudos!
|
|
|
En línea
|
Sólo mirando al frente se puede seguir, llevar lastres en el camino no te lo permiten
|
|
|
dark_sargon
Desconectado
Mensajes: 534
CJ
|
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.
|
|
|
En línea
|
|
|
|
|
|