Gráficos con PHP y Google Charts

Google Charts es un API de Google que permite crear gráficos estadísticos de manera sencilla, estos gráficos se pueden crear accediendo a un URL con los parámetros adecuados. Entre los gráficos disponibles se encuentran: Line chart, Sparkline, Bar chart, Pie chart, Venn diagram, Scatter plot, Radar chart, Map, Google-o-meter, QR codes.

Por ejemplo podríamos crear un gráfico del tipo Pie en 3D con dos valores tendríamos un URL de la forma: http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=300×120&chl=Hombres|Mujeres

Google Charts con PHP
Para facilitarnos el proceso de crear estos gráficos existe la clase googchart escrita en PHP 5, el cual brinda una serie de métodos para generar gráficos estadísticos complejos con lineas de código sencillas.

Para utilizar esta clase primero descargamos la librería y copiamos el archivo GoogChart.class.php el cual contiene la clase que necesitamos, luego incluimos este archivo al inicio de nuestros scripts.

[php]
include(‘GoogChart.class.php’);
$chart = new GoogChart();
[/php]

A continuación creamos un array con los datos que deseamos graficar, el siguiente paso es crear el array con los colores a utilizar y finalmente utilizamos el método setChartAttrs donde pasamos como parámetros el tipo de gráfico, el titulo, un array con los datos a graficar, las dimensiones del gráfico y finalmente un array con los colores a utilizar en el gráfico.

[php]
$data = array(
‘IE7’ => 22,
‘IE6’ => 30.7,
‘IE5’ => 1.7,
‘Firefox’ => 36.5,
‘Mozilla’ => 1.1,
‘Safari’ => 2,
‘Opera’ => 1.4,
);
$color = array(
‘#99C754’,
‘#54C7C5’,
‘#999999’,
);
$chart->setChartAttrs( array(
‘type’ => ‘pie’,
‘title’ => ‘Browser market 2008’,
‘data’ => $data,
‘size’ => array( 400, 300 ),
‘color’ => $color
));
[/php]

Finalmente mostramos la imagen imprimiendo la variable $chart y generaremos la imagen deseada como se muestra a continuación.

pie-chart

Ahora si por ejemplo deseamos crear un gráfico de barras comparando dos valores, creamos primero un array multi-dimensional con los valores que deseamos graficar y al momento de crear el gráfico seleccionamos el tipo bar-vertical tendríamos el siguiente ejemplo:

[php]
include(‘GoogChart.class.php’);
$chart = new GoogChart();

$data = array(
‘February 2008’ => array (
‘IE7’ => 22,
‘IE6’ => 30.7,
‘IE5’ => 1.7,
‘Firefox’ => 36.5,
‘Mozilla’ => 1.1,
‘Safari’ => 2,
‘Opera’ => 1.4,
),
‘January 2008’ => array (
‘IE7’ => 22,
‘IE6’ => 30.7,
‘IE5’ => 1.7,
‘Firefox’ => 36.5,
‘Mozilla’ => 1.1,
‘Safari’ => 2,
‘Opera’ => 1.4,
),
);
$color = array(
‘#99C754’,
‘#54C7C5’,
‘#999999’,
);
$chart->setChartAttrs( array(
‘type’ => ‘bar-vertical’,
‘title’ => ‘Browser market 2008’,
‘data’ => $data,
‘size’ => array( 550, 300 ),
‘color’ => $color,
‘labelsXY’ => true,
));
echo $chart;
[/php]

Con lo cual obtenemos el gráfico de barras comparativo de dos tipos de datos como se muestra a continuación.

bar-chart

Como pueden ver los resultados son de muy buena calidad y el código para la creación es muy sencilla. Además al utilizar Google Charts API es que el procesamiento se hace en los servidores de Google con lo cual ahorramos capacidad de procesamiento en nuestros servidores.

Para una lista completa de los tipos de gráficos disponibles pueden leer Chart Types o también pueden leer la documentación completa en Developer’s Guide.

Comentarios Total 11 comentarios


Bleyder
Publicado: 14/10/2009 7:44 am

Muy interesante la información. Estoy seguro que le encontraré aplicaciones muy prácticas.


[…] This post was mentioned on Twitter by XanelaWeb, Miguel Monroy. Miguel Monroy said: Gráficos con PHP y Google Charts http://sn.im/sia5t […]

Jorge
Publicado: 14/10/2009 12:14 pm

¿Qué tipo de gráficos se pueden encontrar en esa clase?

Saludos

Muy inbteresante

caos30
Publicado: 14/10/2009 12:29 pm

Oye, bueníiiiiisimo!
Yo llevo años trabajando con otra librería PHP que no está nada mal. Pero lo que me ha encantado es la idea de la API por GET !!!! ey… eso está genial!

Probablemente me descargue la clase GoogChart y le monte una API para mí en mi servidor, a la que le voy a añadir un sistema básico de caché, de tal forma que cada vez que reciba una petición mirará si ya se pidió antes ese gráfico para no hacer el trabajo 2 veces :))

Saludos!
SERGI

PD: me encanta tu blog y tus artículos. Principalmente porque escribes solamente cuando tienes algo novedoso que aportar, y lo haces con mucha claridad y ejemplos. Yo intento lo mismo, pero aún no me sale como a ti :P


[…] Visit link: Gráficos con PHP y Google Charts […]

Toolszigfrit
Publicado: 21/12/2009 4:58 pm

Unijimpe as trabajado con pchart

Damaso
Publicado: 24/12/2009 12:55 am

Al parecer esta muy bueno esto, ¿¿¿¿pero funciona con registros llamados desde una base de datos??????????
si es asi como se podria mas o menos, es que tengo que implementar unos reportes que tienen que tener graficos.
ademas una pregunta ustedes saben como pasar una imagen de php a ecxel??
por ejemplo con un echo(“”); pasarle esta imagen junto con los demas datos a un buffer.

Alejandro
Publicado: 26/05/2011 5:31 pm

excelente me va a servir mucho… de lo mejor lo que me es un poco confuso es que yo lo corro en localhost este ejemplo y no veo nada en la URL no veo parametros solo mi link normal localhost osea la url corriendo en localhost, el ejemplo me corre muy bien.

sabes estaba probando con pchart que se habla maravillas y es gratuito sin embargo no se que onda a mi no me corre se me queda la pantalla en blanco y no me sale ni error ni nada apesar de que ya tengo activado el despliege de errores desde php.ini y primero me dio un par de errores que corregi mmm… uno de ellos tenia que ver con la funcion split la cual cambie por explode y dejo de exisitr uno de los errores por que split es ya obsoleta para las ultimas versiones de php 5.3.x

despues me marco otro error con una variable inicializada la cual tuve que modificar dentro de un for de la libreria inicializandolo con 2 y no con 0…

aun asi los errores dejaron de desplegarse pero no veo los graficos la pantalla esta en blanco y sin desplegar nada de nada… puse un echo entro del codigo para ver si habia un problema con el php y esta corriendo bien y ya cheque todo ya habilite tambien la libreria grafica gd2 de php.. una lastima por que pchart parece buenisimo y codigo abierto pero mi presentimiento es que la nueva version 5.3.x puede estar generando alguna incompatibilidad… me canse de pchar y me pase a gogole chart y agradezco al autor de este articulo que me ayudo mucho.

saludos.

sarah
Publicado: 01/06/2011 1:01 pm

Excelente lo grafico, yo lo hice con la libreria libchart (http://naku.dohcrew.com/libchart/pages/introduction/) en php, es muy facil de implementar.

Pero ahora necesito genera grafica en forma radial (tambien conocido como grafico de estrella o de teleraña), en PHP, alguien sabe de alguna libreria para hecelo.

charlie
Publicado: 24/11/2011 12:02 am

Tengo una duda esta libreria solo funciona con porcentajes? es decir si quiero comparar dos valores no se puede cierto? es que vi la pregunta en otros forosy me gustaria saberlo

Alejon
Publicado: 31/10/2014 11:19 am

pero de donde descargo la clase?

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)