Utilizacion de Graficos con JFreeChart...(al fin pude)
Hola amigos les cuento que me he pasado toda la tarde estudiando sobre JFreeChart bien esta es una libreria la que nos permite crear graficas para utilizar en nuestros programas java, he estudiado estos ejemplos e intentare simplificar un poco las cosas sin embargo tambien pueden ver estos codigos de ejmplo que me sirvieron de mucho, al principio me marcaba errores, no me compilaba o no me reconocia los objetos pero dado al estudio fui deduciendo algunas cosas las cuales quiero compartir con ustedes para ver si les sirve de ayuda(talvez tengan problemas similares) bueno lo que intentare es ir posteando(o editando, con forme tenga tiempo) este post para ir poniendo el codigo y la explicacion del codigo fuente hasta llegar a crear una aplicacion que genere graficos con zoom.. (esa es mi meta personal ya que nunca lo he echo) manos a la obra..
1.- Empezaremos obteniendo las librerias
aca la pagina principal
aca la descarga directa:
nota: JFreeChart requiere JCommon class library tambien la pueden bajar en el enlace anterior
2.- Descomprimimos el paquete y exportamos los jar al directorio ext de java (me imagino que esto no require mucha explicacion)
para ello basta con copiar solo el jfreechart-1.0.9.jar (es la version que yo estoy usando) y jcommon-1.0.8.jar
3.- Podemos ver la demostracion que viene para que conoscamos un poco mas de las posibilidades mirar : jfreechart-1.0.9-demo.jar
Segun lo que he visto y todavia no lo he visto todo esta libreria no solo permite la vizualizacion de la grafica como imagen sino que tambien trae la posibilidad de guardar dicha imagen como JPG o como PDF por medio de la clase org.jfree.chart.ChartUtilities creo que esto es mas que suficiente para nuestros propositos...
4.- Ahora veremos un codigo simple que nos generara una grafica de barras y la muestra en un formulario.
esto quedaria mas o menos asi:
******en el siguiete post/edicion veremos como guardar una grafica como imagen JPG .....espero comentarios
- Shadonwk's blog
- Inicie sesión o regístrese para enviar comentarios
Licencia? web?
Interesante, y qué licencia tiene cada librería?
Se presta para hacer algo similar pero en aplicaciones web, y que genere nada más el jpg pero que sea una imagen dinámica y permita hacer zoom o tomar alguna acción si le dan click, etc?
Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley
hola Ezamudio no eh checado
hola Ezamudio no eh checado con exactitud que tipo de lincencia es lo que si se es que es gratis y a tu otra pregunta la respuesta es sip se puede cargar la imagen en alguna aplicacion web de echo en el primer enlace que pongo en post principal muestra como hacerlo y lo demas ya depende de las necesidades y la creatividad de cada desarrollador aqui intentare llegar hasta hacer un zoom se aceptan sujerencias o codigo de ejmplo ya que es la primera vez que lo are...saludos.
Acabo de leer en la página
Acabo de leer en la página y JFreeChart es "free software" (diferente de "open source") bajo la licencia LGPL ;-)
Muy buen post Shadownk, no conocía la librería y creo que me va a ser muy útil para un par de proyectos.
Saludos!
--
Javier Benek
LGPL
Perfecto! Gracias por la info. Significa que se puede usar en proyectos comerciales sin que toda la aplicación se vuelva GPL (aunque no sé por qué tanta gente le tiene miedo a eso). Si una aplicación a la medida para un cliente se vuelve GPL realmente no pasa nada, mientras no la quieran distribuir, y generalmente no les interesa distribuirla, es algo para uso interno.
Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley
Complemento
Muy buen tutorial introductorio de jfreechart, gracias Shadonwk
Para complementar, pongo una lista de algunas cosas que se pueden hacer con jfreechart
JavaRanch big moose saloon member
Buen post
Definitivamente jfreechart es una de las mejores bibliotecas que he usado para la creación de gráficas, la recomiendo sin duda.
Aunque es muy fácil de usar, lo que hace falta a veces es una par de ejemplos que ayuden a entender como resolver un problema concreto. Es por ello que aplaudo la idea original del post. De mi parte buscaré por allí en mi cajón a ver si encuentro algo que considere les pueda servir.
En efecto esta biblioteca se puede usar para crear gráficas dinámicas para aplicaciones web, no hay ningún problema con eso.
Al respecto les comento que quizás la forma más sencilla de hacer esto es con el uso de JSTL. Existen varios proyectos relacionados con esto, uno de ellos es cewolf.
Recuerdo que cuando yo realicé algún proyecto para web, me decidí por Chart TagLibs, es una biblioteca muy simple y que que pude ajustar fácilmente a mis necesidades.
Buen post
Buen post! bastante interesante la libreria. Esta como para echarle un lente.
Gracias
Javadabadoooo xD
Pues estoy a la espera de la
Pues estoy a la espera de la segunda parte, espero pronto hacer esto y mostrarselo con webObjects (que es un lenguaje que tiene como base java) pero usando graficas de google
Muy buen post
Saludos,
Carlos
WebObjects
WebObjects no es un lenguaje, es un framework para desarrollo de aplicaciones web, como Struts, Tapestry, etc con un enfoque muy distinto a JSP, JSF, etc.
Lo mejor de WebObjects es EOF, el Enterprise Objects Framework, un ORM que la verdad me gusta bastante aunque no es muy escalable por lo del EditingContext; hay uno muy similar llamado Cayenne que es de software libre, ya que WebObjects es de Apple y no le dan nada de promoción, aunque viene gratis con las herramientas de desarrollo (que vienen incluidas con cualquier mac).
Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley
Cayenne
Hola enrique:
Podrías profundizar un poquito en el tema de Cayenne, he escuchado últimamente mucho acerca de este framework.....
JavaRanch big moose saloon member
Saludos
gracias por comentar mi post te dejo el enlace hacia la segunda parte:
p.d. tratare de darle seguimineto sucede que he estado muy ocupado...
Primero que nada, gracias
Primero que nada, gracias por compartir esto.
Podrás ayudarme con unas dudas acerca de esto? Te cuento mi caso.
Soy estudiante y nos dejaron hacer unos programas en java implementando gráficas y según lo que leí es que JFreeChar es la mejor opción libre que tengo. En mi máquina corro Slackware Linux (v13) y he instalado el JDK en /usr/java/jdk1.6.0_18 y al descargarme el JFreeChart y el JCommon los descomprimi y los ubique en /usr/java/jdk1.6.0_18/lib/jfreechart-1.0.13 y /usr/java/jdk1.6.0_18/lib/jcommon-1.0.16 respectivamente.
Modifiqué mis variables PATH y CLASSPATH quedando de la siguiente manera:
CLASSPATH=/usr/java/jdk1.6.0_8/lib/:/usr/java/jdk1.6.0_18/lib/jfreechart-1.0.13/lib/jfreechart-1.0.13.jar:/usr/java/jdk1.6.0_18/lib/jcommon-1.0.16/lib/junit.jar
PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/java/jdk1.6.0_18/bin/:/usr/lib/java/bin:/usr/lib/kde4/libexec:/usr/lib/qt/bin:/usr/share/texmf/bin:.
Lo único que he logrado hasta ahorita es compilar los .java, anteriormente me indicaba de que no se encontraba la clase pero, al hacer los cambios anteriores ya logré que compilara pero, no puedo ejecutarlos :S
El IDE que estoy usando es GEANY, por ser ligero, ya que mi máquina no es de muchos recursos que digamos.
Podría indicarme la forma correcta de integrar el JFreeChart? O qué estoy haciendo mal? Qué debo corregir?
Gracias por el tiempo que te puedas tomar para responder.
opcion muy fácil...
hola shunco puedes usar esta opción para tu proyecto, aun que el tema de este aporte es muy bueno :) :
ejemplos:
lo bueno es que es muy fácil de usar.
Vale... Gracias hermano...
Vale...
Gracias hermano... checaré ese proyecto. Aunque sí me gustaría que se solucionara esa cuestión. Ya copié todos los jars de los comprimidos que bajé a la carpeta ex y nada.
Solucionado
Bueno amigos...
He de comentarlos que solucioné mi problema instalando el JDK desde los paquetes que hay disponible en el repositorio de la Universijddad de Oregon.
la variable CLASSPATH la eliminé y también eliminé la ruta que agregué en mi path para el JDK que tenía en un principio (/usr/java/jdk.x.xx_x) y conservé los jars en la ruta original de mi JRE en mi slackware (/usr/lib/java/lib/ext).
Jala perfecto con el GEANY.
duda con JFrame y JFreeChart
Estoy haciendo un programita simple para aplicar el JFreeChart; ya creé uno en donde seteo los datos manualmente, y me funcionó; eso en NetBEans.
Ahora estoy en la incógnita de, ¿Cómo insertar una gráfica de JChart a un JFrame de Swing?
Alguién lo ha hecho que me de una idea??
Estoy usando JFreeChart 1.0.13 y JCommon 1.0.16
se supone que simplemente
se supone que simplemente cambiando:
public class GraficoSimpleLin extends java.awt.Frame
por
public class GraficoSimpleLin extends JFrame
todo deberia funcionar...
alterar logica de la grafica
hola que tal, alguien sabe como se puede alterar la logica de la grafica? me refiero a que por ejemplo si tengo una grafica en cascada, el primer valor lo omita y a partir del segundo valor contionue con su logica normal. Saludos y espero puedan ayudarme.
Lo que andaba buscando
Gracias por revivir este blog @sock_osg. me ahorraste una busqueda en google. =P
alterar logica de la grafica( RESULETO )
Pues antes que nada, hace tiempo ke resolvi mi duda( me ayudo un amigo del trabajo en todo el proceso ) pero pues no lo había publicado jeje, pues bien, para modificar la lógica de las graficas descargue el codigo fuente del jfreechart y fui siguiendo el codigo hasta que di con la parte que grafica, en mi caso( para la grafica de cascada ) la clase WaterfallBarRenderer la cual tiene el método
Esta api utiliza 2D Graphics del JDK de Java, entonces la clase que se altera unicamente se agrega a tu codigo fuente con todo y su ruta del paquete, la cual es ......
Cuando la maquina virtual esta interpretando el codigo y encuentre una referencia a esa clase, buscará primero en las clases originales o nativas por asi decirlo de tu proyecto, y si no existen ahi las buscara en las dependencias o en los jars de la carpeta lib del proyecto, por lo que tomará directamente las clases que has modificado y generará la grafica de acuerdo a la nueva logica que se ha modificado.
graficos estadisticos en jsf
Hola a todos, estoy haciendo un proyecto, xfavor necesito q alguien me ayude como crear graficos estadisticos(de barra, pastel), para mostrar en paginas web JSF.
Saludos
Gracias =)
Muchas gracias por el aporte, me sirvió de mucho, bien explicado, gracias.
Probema al generar grafica en aplicación java
Hola!!!
Alguien me podria ayudar con mi proyecto, lo que pasa es que estoy generando una aplicacion java en la cual guarda registro en una base de datos y realiza reportes con los mismos asi como graficas, estoy utilizando el net beans para la construccion de mi aplicación y iReport para mis reportes, el problema es que al generar el jar no me aparcen las graficas ya sea que las genere con el iReport o en jfreechart; la verdad no entiendo el problema ya que en el net beans funcionan bien y al momento de correr el .jar no las muestra y lo raro es que no manda ninguna exepción.
Ojala y alguien me pueda orientar. Mi correo es hugo-bison81@hotmail.com
Saludos!!!
Hola @bison creo que el
Hola @bison creo que el problema es que al generar el jar no incluyes las bibliotecas necesarias para generar dichas graficas, en netbeans funciona porque el mismo ide agrega las bibliotecas en automatico al entorno de compilación y de ejecución pero no lo hace al empaquetar..
Duda
Buen post, ya ningun problema
Linea limite
Hola que tal a toda la comunidad, he utilizado JfreeChart y la verdad es genial, pero tengo una duda de algo que quisiera hacer pero no sé como entrarle al asunto...
Ya he generado mi gráfica de barras, funciona bien y sin problemas. Ahora lo que quisiera hacer es PINTAR una linea que marque un limite a las graficas, es decir, si los valores del eje de las ORDENADAS va de 0 a 100 quisiera pintar una linea que atraviese toda la gráfica en el punto (0,50).
espero haberme explicado.
Este el codigo que utilizo: