viernes, 4 de enero de 2013

Gráfica de Barras con JFreeChart [Java]

Hola a todos, felices año nuevo y feliz Navidad (felicitaciones un poco atrasadas jejeje) si llegaste a esta publicación es que tu al igual que yo necesitas una solución para crear gráficos de barras, pastel, histogramas, etc. dentro de un JFrame (Ventana) en Java, a pues la solución mas clara es la clase JFreeChart.

El año pasado cuando aún me interesaban hacer algunas cosas en Java (Por ahora no hay nada...) busqué mucho como graficar datos, ya saben datos cuantitativos, hasta algún conocido me menciono que tenia el mismo problema, o bueno la inquietud, el usa la clase Graphics, pero obvio usar esta clase lleva tiempo preparar todo el contenido, con JFreeChart de lo único que debes preocuparte es de escoger el gráfico y agregar los datos.

En la publicación de hoy me dedicaré a explicar como usar la clase ChartFactory para generar un gráfico de barras en 3D y mostrarlo en un label. No es que exactamente lo muestre en el JFrame, es en una etiqueta.

Dato Interesante: ¿Sabias que dentro de una etiqueta puedes escribir HTML y este se muestra? :D pues ahora ya lo sabes :).


Antes que nada te comparto una liga donde se encuentra el proyecto completo, y dentro también hay una carpeta (libs_extras) donde proporciono los .jars necesarios (algunos ni fueron usados) para que funcione el proyecto.


Para comenzar, en el formulario debes crear una etiqueta (quítale el contenido) y asigna un nombre, en el ejemplo que a continuación muestro se llama grafico.



Dentro del constructor Estudiante() después del método initComponents() se crea un objeto datos donde por medio del método setValue(valor,categoria,etiqueta) se ingresan los datos: Misael tiene un 8 en la materia java, Don Enrique 9 y Lupe 6 xD.

En la siguiente parte se crea realmente el gráfico, y se guarda en grafico_barras, en mi caso me incline por una gráfica de barras por lo tanto use la propiedad createBarChart3D(titulo del grafico,Valor X,Valor Y,[Variable donde se guardaron los datos],Orientación,?,?,?). ----->>> Los '?' representan un valor desconocido jeje, así que tu ponlos como en el ejemplo: true,true,false jeje.

La siguiente parte del código indica que se creara un buffered para almacenar en una "imagen" con x,y dimensiones a partir del objeto creado por la clase JFreeChart que se almacena en image.

Por último dentro de la etiqueta grafico con el método setIcon(imagen) agrego la "imagen" que deseo mostrar, en el ejemplo anterior tenemos un BufferedImage como tal no es imagen por lo tanto hay que crearla a partir de ella, una imagen real con new ImageIcon().

Con eso bastara para que aparezca algo como esto:


Fin de la publicación :) te deseo suerte y recuerda, siempre es bueno buscar mas info, estoy consciente de que mi publicación no es la mejor, pero espero te ayude como una pequeña guía, Saludos.

    Choose :
  • OR
  • To comment
No hay comentarios:
Write comentarios