Libchart Graficas en KumbiaPHP
Libchart es una librería en PHP que nos permite generar graficas en nuestras aplicaciones de forma facil y rapida. Esta libraría permite visualizar graficas en 4 formatos: Barras Verticales, Barras Horizontales, Formato Torta y formato de multiples lineas.
http://naku.dohcrew.com/libchart/pages/introduction/
Libchart ya se encuentra instalada en KumbiaPHP así que no tenemos que preocuparnos por descargar nada.
Esta librería se encuentra almacenada en el directorio core/libs/libchart.
Vamos a crear un ejemplo sencillo, nos vamos a basar en uno de los ejemplos del sitio web de libchart
Lo primero que tenemos que hacer es incluir la librería a nuestro proyecto, mediante el archivo boot.ini, agregamos la librería (Esto no será necesario en la proxima version del framework, Spirit Beta2):
1 2 | [modules] libs = date, auth, session, ACL, logger, <strong>libchart</strong> |
Ahora vamos a crear nuestro controller:
1 2 3 4 5 6 7 8 9 10 | Load::lib('libchart'); $chart = new VerticalBarChart(500, 250); $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 www.example.com"); $chart->render(APP_PATH.'public/img/graficas/grafica1.png'); |
Como vemos estamos generando una grafica en formato .png y la almacenamos en un directorio llamado “graficas” el cual tiene que tener los permisos necesarios para lectura y escritura.
Ahora solo tenemos que mostrar nuestra imagen en una vista:
1 | <?php echo img_tag('graficas/grafica1.png');?> |
Así de facil…

Comments (2)
Si Ernesto, creo que lo unico es quitar el render, pero para confirmar consulta la pagina de la librería, ahí hay ejemplos de no generar el archivo de imagen.
Hola.
Quería consultar si existe alguna forma de generar la gráfica, sin crear previamente el archivo.
La idea que tengo es de incrustarla dentro de un FPDF directamente.
Saludos!