PHP/SWF Charts, Gráficos estadisticos en PHP con Flash

17 12 2007

Recientemente con un compañero de universidad, me he visto en la necesidad de realizar ciertos trabajos en PHP que requerian que graficaramos ciertos datos estadisticos. Pues bien, luego de buscar un poco nos hemos encontrado con esta excelente utilidad, se trata de PHP/SWF Charts una muy completa libreria que nos permite realizar una gran cantidad de graficos de muy buena calidad.

Podemos realizar una gran variedad de graficos, desde los clasicos tipo columnas y tortas hasta graficos mas sofisticados en 3D, recientemente se ha implementado la opcion de realizar graficos polares y compuestos.

PHP-SWF Charts

Para poder usar esta libreria, solo es necesario que el navegador web en el cual se pretenden visualizar los graficos tenga instalado como minimo el plugin de Flash Player 6, además por supuesto que nuestro servidor web soporte PHP.

Esta libreria, puede ser descargada de forma gratuita desde la pagina web del fabricante, pero de esta forma no tendremos ningún tipo de soporte tecnico, además de otras pequeñas limitaciones que si queremos eliminarlas deberiamos obtener una licencia a un costo de US$45.

Para finalizar, comentarles que en el sitio web podemos encontrar un tutorial y una extensa ayuda que nos permitiran comprender de forma mas o menos rapida el funcionamiento de la utilidad.

Sin embargo, y debido a que ultimamente la he usado mucho, a aquellas personas que necesiten alguna colaboración y pueda de mi parte brindarles alguna ayuda, con gusto lo estaré haciendo.

Nota: Otra alternativa a esta libreria la expongo en otro post titulado: Open Flash Chart – Mas Graficas para PHP que ofrece graficos incluso superiores a PHP/SWF Charts y además es 100% libre, lo que significa que además de poder modificarla a nuestro gusto no tendremos ningún tipo de restricciones al momento de usarla.


Acciones

Información

51 respuestas

18 12 2007
Edwin

Estas graficas se ven cheveres y en realidad estoy tratando de generar datos estadisticos de una base de datos, te agradezco si me ayudas para poder trabajar con esta grafica ya la descargue pero no se como implementarla en mi proyecto de grado te agradezco de todo corazon si me ayudas es que tengo que entregar este proyecto dentro de poco para poder graduarme, estoy trabajando con php dreanweaver ojala me puedas ayudar gracias.

18 12 2007
arturoweb

@Edwin: Por supuesto que puedo ayudarte, pero la verdad te recomiendo que primero ingreses a la pagina web del fabricante y revises la ayuda y los tutoriales que hay para la creacion de las diferentes tipos de graficas, incluso hay un pequeño ejemplo donde explican como hacer cuando los datos de origen de las graficas se encuentran en una base de datos mysql (el cual tambien era mi caso).
Entonces, por ahora te digo que revises los tutoriales y cuando tengas una duda mas puntual no dudes en comentar y te ayudare por e-mail o colocaré otra entrada en el blog resolviendo tu duda para que pueda servile a otras personas mas adelante.
Saludos!

24 12 2007
Lewis

Hola, me parece interesante todo esto, es posible aplicarlo a una base de datos de acces anivel de pc local?
gracias

5 01 2008
arturoweb

Por supuesto Lewis, siempre y cuando sepas como conectarte a la base de datos Acces mediante PHP y como extraer los datos de ella. Para esto te recomiendo busques en la red un tutorial de como montar un servidor local con PHP y Acces. Además tambien busca un tutorial para conectarte a una base de datos acces con PHP. Luego solo te falta leer los tutoriales de PHP/SWF Charts que se encuentran en la pagina web del fabricante.
Saludos!

7 02 2008
Hernando

Tengo un problema, baje las librerias php y trate de usar el ejemplo y al tratar de ver los ejemplos en el navegador solo me aparece la pelicula flash tratando de descargarse y solo eso, nunca logro ver el gráfico o algo que se le parezca, me gustaria saber que debo tener instalado y configurado en mi equipo, tengo el xp con sp2 y el iis funcionando.
PD.: Soy nuevo en el tema de la programacion web pero necesito hacer una pagian que tome datos de una bd en mysql y los represente en un gráfico. Gracias por cualquier ayuda

Hernando

9 02 2008
arturoweb

Ok … lo primero que debes tener en cuenta (por si no lo sabias) es que el IIS no viene configurado para correr paginas PHP.
Te recomiendo que primero verifiques que tu servidor web, si esta configurado para correr scripts PHP, si no es así entonces te recomiendo que hagas los cambios necesarios o que instales el servidor Apache.
Por lo pronto es lo unico en que puedo ayudarte, no dudes en escribirme si se te presenta otro inconveniente.
El siguiente enlace te puede ayudar a configurar tu IIS:
http://www.desarrolloweb.com/faq/12.php
Saludos!

21 02 2008
sanimar

hola al tratar de utulizar me genera este error como puede solucionarlo

21 02 2008
sanimar

perdon el error es
Fatal error: Cannot redeclare insertchart() (previously declared in C:\AppServ\www\SGCnet\Estadistica\charts.php:14) in C:\AppServ\www\SGCnet\Estadistica\charts.php on line 33

21 02 2008
arturoweb

Hola sanimar, lo primero que debes saber es que la funcion es InsertChart(“parametros”) y no insertchart() (PHP es sensible a mayusculas y minusculas). Creo por el momento que ese es tu error, estas llamando mal a la funcion InsertChart(). La cual tiene los siguientes parametros:
string InsertChart ( string flash_file, string library_path, string php_source [, int width [, int height [, string color [, boolean transparent ]]]]

flash_file: la direccion absoluta o relativa del archivo charts.swf
library_path: la direccion absoluta o relativa del folder donde se encuentra la libreria charts_library
php_source:La direccion absoluta o relativa donde se encuentra el archivo PHP que envia los datos para el grafico que deseas mejorar.
width y height: El ancho y alto que quieres que tenga el grafico que estas generando. Por defecto es 400 x 250 pixeles.
color: El color de fondo del grafico. Debe ser un string que represente el color en valor hexadecimal.
transparence: Un booleano (true/false) que indica si el fondo del grafico es trasparente. El valor por defecto es false.
Ejemplo:
echo InsertChart ( “charts.swf”, “/libraries/charts_library”, “sample.php”, 600, 400, “8844FF”, false );

Espero eso pueda ayudarte, sino no dudes en escribirme nuevamente. Deberias darme mas datos para poder determinar el porque del error, pero inicialmente podria decirte que estas llamando de forma equivocada a la funcion InsertChart().

Mas info: http://www.maani.us/charts/index.php?menu=Reference&submenu=canvas_bg

Saludos!

8 04 2008
JMPR

hola quiciera saber que datos debe mandar sample.php para que cuando sea llamado desde aca reciva tenga los datos pertinentes para que haga la grafica, pienso que deberian ser los datos obtenidos de la db pero como deberia retornarlos, osea, como es seria el procedimiento mas adecuado?

9 04 2008
arturoweb

Hola JMPR, el archivo sample.php contiene los datos de configuracion del grafico, en dicho archivo lo que hacemos es llenar un vector cuyo nombre es $chart[] con las preferencias de nuestro grafico. Te recomiendo que vayas a la pagina del fabricante y te ubiques en la seccion “Gallery”, desde alli al hacer click sobre cada uno de los graficos, te muestra el archivo sample.php asociado a ese grafico. El siguiente enlace: http://www.maani.us/charts/source.php?page=Gallery_Column_1.php es el correspondiente archivo para un grafico tipo barras, te recomiendo que lo estudies y lo acomodes a tus necesidades.
Saludos!

10 04 2008
zarate

hola tebgo un probelma como puedo generar garficas en liena

10 04 2008
arturoweb

Hola zarate, la verdad no entiendo muy bien tu pregunta. :S
Si lo que quieres hacer graficos de tipo linea (?) te recomendaria que miraras la pagina del fabricante donde hay una excelente ayuda para aprender a usar esta herramienta.
http://www.maani.us/charts/index.php?menu=Gallery
Alli seleccionas el submenu “linea” y luego puedes hacer clic en cada uno de los dos graficos de ejemplo para ver su codigo fuente.
Saludos!

20 04 2008
erick sanchez

hola me interesa tu publicacion pero no entiendo muy bien como ejecutarlo y mucho menos obtener los datos y mostrarlos dentro del archivo flash ! ya que en muchos de esos ejemplos solo me salen texto(datos) – gracias

22 04 2008
Maderita

Hola, he bajado el ejemplo y lo subi a mi server, y lo llamo desde una pagina php como encontre en el ejmplño y nada :s
despues d baja los archivos lo llame desde aqui..

pero igual no carga :s
help me

23 04 2008
arturoweb

Hola Maderita, deberias darme mas detalles de lo que estas haciendo y tal vez así pueda ayudarte. No me queda muy claro el procedimiento que estas siguiendo. Si sigues correctamente los tutoriales de la pagina web del fabricante no deberias tener problemas.
Saludos!

7 05 2008
Andres

Arturo… estoy trabajando con PHP/SWF y tengo una duda talvez puedas solucionarla… estoy generando un indicador con la libreria, este a su vez realiza una conexion con base de datos… mi primer ? es como puedo poner un titulo general a la grafica… ? como puedo cambiar el tamaño de letra de las graficas en el eje horizontal si estoy utilizando graficos tipo barra… muchas gracias por la colaboracion

7 05 2008
arturoweb

Hola Andres:
1. Para el titulo puedes usar $chart [ 'draw' ] con el que puedes agregar a tu grafico texto, lineas, circulos, etc. Visita el siguiente enlace:
http://www.maani.us/charts/index.php?menu=Reference&submenu=draw

2. El segundo inconveniente lo puedes solucionar con: $chart['axis_category']. Visita el siguiente enlace:
http://www.maani.us/charts/index.php?menu=Reference&submenu=axis_category

Espero lo anterior te pueda servir, cualquier otra duda estaré atento.

Saludos!

9 05 2008
Andres

Arturo muchas gracias por la informacion… ahora me surge otra duda … deseo llamar la pelicula flash desde otro archivo flash… es posible hacerlo… como paso los parametros para graficar la imagen.

9 05 2008
arturoweb

Hola nuevamente Andrés.
Debido a que los graficos son generados mediante scripts PHP, no es posible hacer lo que deseas, porque no puedes incluir codigo PHP dentro de un archivo FLASH. (Por lo menos yo nunca lo he visto ni hecho, si logras hacerlo avisame pues seria algo bastante interesante, aunque estoy 99.99% seguro que no es posible hacerlo).

Saludos, cualquier duda avisa!

4 06 2008
alberto

Hola Arturo
Entiendo que para generar el gráfico se necesarios dos archivos .php
El primero donde van los datos y el segundo el que genera el gráfico

El problema que tengo es que estoy generando el primero (el de los datos) desde un formulario al que le envío los parámetros para una consulta a una base de datos. El asunto es que de ahí no se cómo redireccionar al archivo .php que genera el gráfico. Espero haberme explicado bien.

Me echas una mano ?

4 06 2008
arturoweb

Hola alberto:
El envio del formulario lo haces directamente a la pagina que hace el grafico y no a la de los datos del grafico. Suponiendo que el archivo de datos se llama “data.php” y el del grafico “grafico.php” quedarian mas o menos de la siguiente forma:

Archivo grafico.php

/*Suponiendo que los datos que envias por el formulario son varia1 y varia2*/
/*Tomo dichos valores enviados por POST (o GET) y los almaceno en dos variables locales var1 y var2*/
$var1 = $_POST['varia1'];
$var2 = $_POST['varia2'];
/*Luego hago el envio de dichas variables al archivo de datos del formulario*/
echo InsertChart("charts.swf", "charts_library", "data.php?varia=".$var1."&variab=".$var2&uniqueID=" . uniqid(rand(),true));

Archivo data.php
/*Guardo el valor de las variables enviadas desde grafico.php por GET*/
$dat1 = $_GET['varia'];
$dat2 = $_GET['variab'];
/*A continuacion haces las consultas correspondientes con las variables dat1 y dat2 y llenas los datos y parametros del grafico*/

Nota: La variable uniqueID que paso al hacer el llamado del archivo de datos del grafico es obligatorio, ya que dichos datos son dinamicos y cambian dependiendo de los parametros que envias. Con esta instruccion se evita que se queden en cache los datos y que siempre haga el mismo grafico.

No sé si me haya explicado lo suficiente, de todas formas revisa y cualquier otra duda me escribes nuevamente. Tambien seria bueno que dejaras un comentario de agradecimiento si esta información te ayuda a resolver tu problema, ya que como habras notado he resuelto varias dudas y nadie agradece.
Saludos!

4 06 2008
alberto

Hola Arturo

Si Ud. está en lo cierto.

Primero que todo Ud. se merece una ¡¡¡ FELICITACION !!! grande por todo el contenido que hay en su página y un ¡¡¡ AGRADECIMIENTO !!! mucho mas grande por toda la colaboración que nos presta.

Estuve haciendo pruebas y con base en el ejemplo que me envió hice los dos scripts pero aún no me funcionan, pienso que debo tener algún error de sintaxis o algo por el estilo. Estos son los scripts que hice, si los hago funcionar, me funciona la consulta a la base de datos.

Archivo data.php

Archivo grafico.php

Por favor los revisa a ver si le funcionan a Ud. y encuentra el error ?

Gracias de antemano.

4 06 2008
alberto

Hola Arturo,

Le he enviado dos veces los scripts pero no se ven y no se porque.

Me regala un e-mail a galoz2001@hotmail.com y se los envio ?

Disculpe las molestias.

Gracias

16 06 2008
lucas

Hola:
estuve buscando informacion en la web y no la encontre, necesito hacer graficos para una liga de futbol, lo que no me sales es poder cambiar el orden en que se muestran los datos, por defecto en el eje y me muestra que van desde 1 a 8 y yo quiero que sea al revés de 8 a 1 y que los datos se adapten, me podrías ayudar como hacerlo desde ya muchas gracias

19 06 2008
Adriana

Hola Arturo,
Espero y me puedas ayudar,
De antemano muchas Gracias,
El problema que no he podido resolver es que mando llamar 3 gráficas diferentes en una misma página, me las muestra, pero a partir de la Tercera, hay veces que me la muestra en su lugar y veces que la muestra desfasada, ya hice la prueba cambiándolas de lugar de cómo las mando llamar, y siempre es a partir de la tercera sea cual sea, cuál es el motivo de esto y como lo puedo solucionar????????

Gracias…

19 06 2008
arturoweb

Hola Adriana,
Te recomendaria que usaras una tabla e insertar en celdas diferentes cada grafica. Otra alternativa seria dejar cada grafica dentro de un div. Te recomendaria que usaras primero esta ultima opción ya que la programacion con tablas esta descontinuada.

Saludos.
Nota: Dentro de poco y apenas el trabajo me de un poco de tiempo, publicaré otro POST con informacion acerca de otra libreria totalmente libre que tambien nos sirve para hacer graficas FLASH muy buenas.

20 06 2008
Adriana

Hola Arturo,
Muchas Gracias por la pronta ayuda,
pero creo que no me d a entender muy bien,
a donde te podría enviar una imagen de como me aparece la gráfica????????
así podras ver mi problema…

Muchas Gracias y Saludos…

20 06 2008
arturoweb

Hola nuevamente Adriana, revisa tu e-mail, te envié un correo para que me devuelvas la imagen y demas.
Saludos!

20 06 2008
Adriana

Hola……..

Quiero Felicitar a Arturo por su blog,
Y agradecer por su gran apoyo,
Ya que soluciono mis dudas,
Tuvo mucha paciencia y me brindo su valioso tiempo…

Salu2…

23 06 2008
Alberto

Alberto excelente blog!

Descargue lso archivos y los puse a trabajar mediante una base de datos, todo perfecto, solo tengo una duda… la grafica puede hacerse mas grande?.. es decir me manda un flash a un tamaño y cuando meto bastantes datos en la base de datos los mete en ese tamaño y la grafica pierde un poco de sentido ya que no se ven todos los datos a un buen tamaño.

No se si me explico, lo que deseo saber es solo si puedo por ejemplo poner la grafica a un tamaño por decir 800 pixeles y no tan chica como esta aparece.

Gracias.

23 06 2008
arturoweb

Hola Alberto,
Por supuesto que puedes modificar el tamaño del grafico. Cuando haces el llamado a la funcion InsertChart que es la encargada de dibujar el grafico, le pasas dos parametros que indican el ancho y alto del grafico, expresado en pixeles.
echo InsertChart ( “charts.swf”, “/libraries/charts_library”, “sample.php”, 600, 400, “8844FF”, false );
En el ejemplo anterior los numeros 600 y 400 indican el ancho y el alto respectivamente, si quieres modificar dicho tamaño solo tienes que aumentar o disminuir esos valores.

Saludos!

23 06 2008
Alberto

Muchisimas Gracias Arturo.. siempre es bueno para nosotros los primerizos contar con expertos como tu que dedican una parte de su tiempo a hecharnos la mano!

En verdad GRACIAS!

24 06 2008
Open Flash Chart - Mas Graficas para PHP « ¿Que pasa?

[...] 24 06 2008 Luego de ver el gran numero de visitas y comentarios que ha tenido el post sobre PHP/SWF Charts y tal como lo prometi, comento a continuación otra libreria para PHP que nos sirve para generar un [...]

25 06 2008
Andy

hola que tal , muy bueno tu blog eh!, una consulta amigo, porque cuando estoy en la pagina oficil el atributo “link” de chart funciona bien, le doy clic en print y me sale para imprimir, en el javascript y tambien me sale hola mundo, etc. pero cuando lo hago en mi maquina siempre me lleva a la direccion de la pagina oficial, es que es pagado y no se goza de esos privilegios o que?. gracias. el link es este http://www.maani.us/charts/index.php?menu=Reference&submenu=link

25 06 2008
arturoweb

Hola Andy,
Si no quieres que al darle clic sobre el grafico te lleve a la pagina web del fabricante, deberias pagar una licencia que oscila entre los 40 y 45 dolares.
Debido a que esta libreria no es 100% gratuita, me decidí a agregar otro post a mi blog en el que sugiero otra libreria, Open Flash Charts que es 100% libre y además genera graficos incluso mejores que PHP/SWF Charts.
Saludos y gracias por visitar mi blog!

26 06 2008
Elizabeth

Hola tengo problemas con la herramienta open-flash-chart
Baje el software de la pagina del fabricante segui los mismos pasos que en tu ejemplo, subi a mi servidor los archivos open-flash-charts.swf, ofc-library para php, cree un archivo php el cual incluyo y por ultimo cree el archivo de los datos llamado chart-data.php y no me aparece la grafica sale una imagen como que esta leyende y luego muesta en la pantaya lo siguiente leyenda :http://climaymas.com/chart-data.php
Necesito hacer unas graficas para unas temperaturas y necesito ayuda, he leido que atodos les ha funcionado gradezco su ayuda

11 08 2008
rocio

Hola!!!
tengo un problema. necesito 25 gráficas estadisticas, ¿dónde o en que página las puedo encontrar?
ya he buscado en bastantes y no encuentro nada.
Gracias…

11 08 2008
arturoweb

Hola rocio, la verdad no entiendo tu pregunta.
Si necesitas crear graficas estadisticas en PHP u otro lenguaje, te recomiendo la libreria OpenFlash Chart.
Saludos!

25 08 2008
felipe

ooooooooooooooooooooooooooooooooooolimpica

3 10 2008
ivan

la verdad es que hay quwe ser muy boludo para aser una pag. com esta

9 10 2008
IDALIA

ayuda necesito las 9 graficas de estadistica c/u con ejemplo y aplicacion

16 10 2008
Pepe

Primero que nada te felicito y al mismo tiempo te agradezco arturo por estos tips para usar estos flash.
Ahora a cambiado de la version 2.0 en la cual se creaba todo con variables php.
Donde puedo ver ejemplos mas completos de como llenar los datos (especialemente por la extraccion de una BD), y como configurar ciertos atributos de grafico.
Una pregunta mas en la version anterior existia la posibilidad de al dar evento click sobre una parte del pie podias llamar a la generacion de otro pie (el cual podia simular un contenedor de inf) ej: el pie muestra paises y al dar click mostraba las ciudades de esos paises… y asi subsiguiente mente, aun la tiene? y si lo tiene como seria
Tienes algunas paginas ejemplo?

22 10 2008
yamila

hola todo vien yo ando vien voz

13 01 2009
marcela

hola buenos dias arturo e estado leyendo las dudas que han surgido en cuanto al uso de esta herramienta para hacer graficas y si e llegado asta aki es porque yo stoy teniendo esa necesidad que ya han tenido los demas, te explico en que consiste mi proyecto tengo una base de datos, formularios, pero tengo que hacer graficas en funcion a esos datos, pero para hacerte honesta no tengo idea de como utilizaar esos scripts que ya estan en la pagina del fabricante y modificarlos a mi necesidad….espero y me puedas ayudar y pedirte alguna direccion en la que me puedas ayudar, e leido y a los que te han preguntado sus dudas le as sabido explicar y ayudar GRACIAS POR TUS DISPOSICION

13 01 2009
marcela

MI PROYECTO ESTA EN PHP Y MYSQL AMBOS LOS INSTALE POR SEPARADO USO EL DREAMWEAVER espero tu respuesta pronto

13 01 2009
arturoweb

Hola marcela, con mucho gusto te puedo ayudar en lo que necesites. Sin embargo primero deberias revisar el post Open-Flash Chart en donde expongo un ejemplo del uso de otra libreria completamente libre.
Te pido que lo revises y hagas el ejemplo que alli expongo y ante cualquier duda me lo hagas saber, con gusto estaré atento a ayudarte.
Saludos!

13 01 2009
marcela

GRACIAS POR TU RESPUESTA RAPIDA LO CHECARE GRACIAS GRACIAS !!!

10 02 2009
Daniel

Hola arturo la verdad que es muy bueno tu blog. La duda que tengo es si puedo insertar una grafica Open-Flash Chart en un pdf por medio de php. por tu atención gracias.

26 04 2009
marco

Se ven muy bien trabajadas estas graficas, vere si la spuedo implementar a tablas dinamicas.

Gracias por el aporte

11 09 2009
Omar

Hola a todos. Segui todos los pasos que estan en la pagina. Y se muestra el grafico en el navegador. El problema que tengo es que aunque cambie los datos siempre se muestra el mismo grafico de ejemplo. Que puede estar pasando.

Deja un comentario