6 "pelagatos" en línea - Like Dr. Cox with no J. D.
Licencia Creativa en el mes del amor



votar Gráficas con LibChart en PHP

NOTA: Al momento de re-escribir este artículo, me entere de la nueva versión de la librería con soporte total para PHP5 y nuevos tipos de gráficas, aún así, no ha cambiado en sus funciones básicas que son las que se explican aquí.

LibChart es es una li­brería orientada a objetos de libre distribución y facilidad de uso que te ahorrara la difícil tarea de crear gráficas en tus aplicaciones Web. Todo lo que tienes que hacer, es bajarte la librería, instalarla en tu aplicación y empezar a usarla. Entremos en detalle.

Instalar la librería

Después de descargar la librería, es necesario que está se descomprima y se coloque en un subdirectorio de nuestra aplicación, en mi caso, le he dejado el nombre de la librería a la carpeta, solo para recordar que estoy haciendo.

Libchart

Una vez subidos los archivos, deberís hacer lo siguiente:

  • Otorga el permiso 555 a la carpeta que acabas de subir
  • crea dentro de esa carpeta una subcarpeta donde se van a guardar las gráficas (se generan en formato .PNG) y ponle los atributos 777 (siempre puedes jugar con los permisos), en mi caso, le puesto demo como nombre a la carpeta

Creando los gráficos

Al momento, LibChart, soporta gráficas de barras horizontales y verticales, circulares y gráficas de líneas, así que tendremos que elegir cual vamos a crear, pero primero, en nuestras aplicaciones, incluyamos la librería correspondiente (ver la nota el inicio de este artículo).

PHP:
  1. include "libchart/libchart.php";

Recordemos que debemos apuntar al nombre que le hayamos puesto a la carpeta de nuestra librería. Con eso ya tenemos incluida la librería, ahora vemos como crear una gráfico de barras horizontal

PHP:
  1. $chart = new HorizontalChart(500, 250);

Con barra verticales

PHP:
  1. $chart = new VerticalChart(500, 250);

Circular o de pastel

PHP:
  1. $chart = new PieChart(500, 250);

Líneal

PHP:
  1. $chart = new LineChart(500, 250);

Se ve bastante fácil, por cierto, los parametros numéricos representan ancho y alto respectivamente, $ chart es el nombre que le hemos dado a nuestra variable la cual se deriva de las clases LineChart, VerticalChart, HorizontalChart y PieChart; lo siguiente, es añadir por supuesto el contenido de la gráfica.

PHP:
  1. $chart->;addPoint(new Point("Jan 2005", 273));

addPoint es un método que consiste en agregar un punto a nuestra gráfica, se instancia de la Clase Point, e incluye, el título entre comillas y el valor necesario para poder representarlo, lo que quiere decir que podemos agregar tantos puntos como datos necesitemos representar. Ahora, como ya tenemos los datos, es importante colocarle un título a nuestra gráfica, de otra forma ¿cómo sabremos que estamos ilustrando? setTitle se encarga de ello

PHP:
  1. $chart->setTitle("Este es el título global de la gráfica");

Ahora que ya tenemos todo completo, hay que renderizar el gráfico y que se genere el archivo .png con nuestra gráfica

PHP:
  1. $chart->render("demo/demo2.png");

El método render le dice a donde vamos a depositar la gráfica, es importante como mencione al inicio que el directorio donde vamos a poner las gráficas generadas tenga el permiso 777 o 775, se que para los paranoicos de la seguridad esto es inaudito, pero vamos, hay mecanismos para ello, una recomendación es que no pongan sus gráficas sobre la raíz de su servidor sino quieren llevarse sorpresas desagradables (por aquello de los "hackers", crakers, lammers, script kiddies, etc). Lo último que queda por hacer, es simplemente mostrar la gráfica en nuestra aplicación, lo haré de la forma más sencilla posible

PHP:
  1. echo "<img src="http://www.aoyama.com.mx/wp-admin/demo/demo2.png" alt="" />";

Nada del otro mundo, ¿eh? si todo salió bien, ya tienen un perfecto sistema de generación de gráficas. Veamos el código completo de una gráfica y su visualización.

PHP:
  1. include "libchart/libchart.php";
  2. $chart = new HorizontalChart(500, 170);
  3. $chart-&gt;addPoint(new Point("Azul", 50));
  4. $chart-&gt;addPoint(new Point("Rojo", 83));
  5. $chart-&gt;addPoint(new Point("Verde", 142));
  6. $chart-&gt;setTitle("Cual es tu color favorito?");
  7. $chart-&gt;render("demo/demo2.png");
  8. echo "<img src="http://www.aoyama.com.mx/wp-admin/demo/demo2.png" alt="" />";

libchart

Y las bases de datos, ¿qué?

Sabía que se lo preguntarían, suponiendo que ya tenemos todo el código para la conexión de una base de datos, podemos tomar un ejemplo sencillo de como gráficar datos de alumnos de una determinada escuela.

PHP:
  1. include "libchart/libchart.php";
  2. $chart = new HorizontalChart(500, 170);
  3. $chart-&gt;setTitle("Promedio Grupal");
  4. $sql = "select nombre, promedio from alumnos where semestre=2 and idgrupo=3";
  5. $result = mysql_query($sql, $enlace_a_la_bd);
  6. $registros = mysql_num_rows($ result);
  7. if($registros==0)
  8.  
  9. No hay datos para gráficar
  10. ";
  11. else
  12. {
  13. while($datos = mysql_fetch_array($result))
  14. {
  15. $chart-&gt;addPoint(new Point($datos["nombre"], $datos["promedio"]));
  16. }
  17. $chart-&gt;render("demo/demo2.png");
  18. echo "<img src="http://www.aoyama.com.mx/wp-admin/demo/demo2.png" alt="" />";
  19. }

Cuyo resultado sería:

Libchart

¡Espero que les haya sido de utilidad!

  • Share/Bookmark

Artículos Relacionados

  • No hay Artículos Relacionados

Etiquetas: , ,

13 Respuestas para “Gráficas con LibChart en PHP”


Luis Josue

Dice:

Hola necesito ayuda para saber como otorgar los permisos a la carpeta libchart es decir el permiso 555 en windows xp home edition


Seta

Dice:

Hola Luis José, el sistema de archivos de windows es diferente al de linux, bastará con solo otorgarle la propiedad de solo lectura.


Dessiree Ferreira

Dice:

Yo segui los pasos y en Windows me corren las graficas pero cuando la instalo en Linux no se ve la imagen, si pueden ayudarme porfavor enviame un email.

Gracias


Seta

Dice:

Hola Dessire, mira en Linux la carpeta donde coloques los archivos debe ser propiedad de tu usuario y tener los permisos 777 para que libchart pueda crear los archivos de las gráficas.


Nohe Velasco

Dice:

Tengo una duda, ¿hay un parametro adicional para controlar o configurar los colores de las graficas?, gracias por su ayuda.


Dessiree Ferreira

Dice:

Hola queria dar las gracias por responder a la duda pero probe desde el servidor de linux otorgandole el permiso a la carpeta: chmod 777 /opt/lampp/htadocs/atlas/libchart y nada aun no veo la imagen de la grafica. Queria saber que otra cosa podemos pensar que sera la solucion.

Gracias


Seta

Dice:

Nohé: Es una clase llamada Color.php, busca dentro de ese archivo

Dessiree: Revisa si no estás teniendo problemas con el usuario, en mi caso, yo me adueño de la carpeta de publicación web con mi usuario que originalmente pertenece a apache o wwwrun. Por cierto, ¿hace esto?

echo " < img src = 'demo/demo2.png ' / > " ;

Tines bien la ruta de la carpeta donde se guardan? revisa si se está creando el archivo...


Dessiree Ferreira

Dice:

Hola me gustaria verificar con ustedes si este tutorial de graficas sirve para php5

Gracias


Seta

Dice:

Hola Dessire, la nota al inicio del artículo explique que si funciona igual


tripero

Dice:

hola, queria saber como seteamos el maximo valor en el eje y, porque al parecer se hace automaticamente, pero yo no quiero eso, es decir, quiero configurar la escala a mi modo.
gracias


dariana

Dice:

hola tengo un problema con la libreria libchart-1.2.1 es que descargue el archivo y pues lo pegue en la carpeta de las www en linux fedora pero me sale este error==> Fatal error: Call to undefined function imagecreatetruecolor() in /var/www/libchart-1.2.1/libchart/classes/view/plot/Plot.php on line 217 y pues no altere nada solo queria ver los graficos para luego editarlos pero sale ese error xD


Felipe

Dice:

Estimados,

Nohe Velasco pregunto sobre el cambio de color de los graficos, pero la verdad es que no he encontrado forma de cambiar los colores. Agradecería mucho que alguien me dijera como.

Saludos!


Nery

Dice:

Buenos días, por favor necesito un poco de ayuda ya descargué el libchart, en el programa ya tengo los include y require. Pero, cuando ejecuto la aplicación no me genera ni siquiera los graficos más sencillos que aparecen en la página principal http://naku.dohcrew.com/libchart/pages/samplecode/ como por ejemplo:
$dataSet = new XYDataSet();
$dataSet->addPoint(new Point("Jan 2005", 273));
$dataSet->addPoint(new Point("Feb 2005", 321));
$dataSet->addPoint(new Point("March 2005", 442));
$dataSet->addPoint(new Point("April 2005", 711));
$chart->setDataSet($dataSet);
$chart->setTitle("Monthly usage for http://www.example.com");
$chart->render("generated/demo1. Png");

Ya revisé: extension GD2, el GD support enabled
GD versión superior a 2,etc. Y todo aparentemente está correcto. Qué podría estar ocurriendo?

Muchas gracias

Deja una respuesta

Atención: Antes de comentar, recuerda que del otro lado también hay una persona, se considerado. El autor se reserva el derecho de editar o eliminar comentarios tendenciosos o con el simple hecho de molestar.