Graficando en Java con JFreeChart

14
8573
Esta vez presento un tutorial muy detallado acerca del uso de la librería JFreeChart en Java, que nos permitir hacer diferentes tipos de gráficos con plantillas preestablecidas y con opciones dinámicas.

 

En publicaciones pasadas aprendimos como construir una sencilla pero eficaz graficadora en Java, con la cual graficamos datos a partir de los sensores DHT11 y HC-SR04.

En el día de hoy vamos a realizar experiencias similares, esta vez utilizando la librería JFreeChart.

Una de las razones por las cuales me decidí a programar en Java es que existe una gran cantidad de material hecho por otros programadores. Este material está disponible al público que lo necesite y esté interesado en utilizarlo.

JFreeChart fue hecho para hacer gráficas en Java. El sitio web oficial es el siguiente: http://www.jfree.org/jfreechart/

Utilizar JFreeChart es relativamente sencillo. Basta con descargar la librería desde la página de descargas oficial de JFreeChart.

La versión más reciente al día de hoy es la 1.0.14.

Ahora nos dirigimos a Netbeans y creamos un nuevo proyecto. Agregamos un JFrame y un botón.

Ahora vamos al código. Necesitamos importar a nuestro proyecto las librerías JFreeChart y JCommons, ambas disponibles aquí.

jfreechart

Luego necesitamos importar la librería JFreeChart. Esto se hará automáticamente cada vez que aparezca un mensaje de error indicando que hace falta una librería.

Ahora es momento de iniciar con la programación. Declararemos una variable llamada Grafica:

JFreeChart Grafica;

jfreechart

Ahora lo que viene es bastante sencillo. EL primer ejemplo que haremos será una gráfica de barra que muestre la cantidad de personas que asiste a un establecimiento durante los días de una semana. Algo completamente random que solo sirva para ver como funciona el chart. Los datos que se van a graficar se deben guardar en un DefaultCategoryDataset. Para ello declaramos una variable llamada Datos.

DefaultCategoryDataset Datos = new DefaultCategoryDataset();

jfreechart

Ahora agregamos los datos al Dataset.

Los parámetros del método addValue son los siguientes:

  • Parámetro 1: el valor que se va a graficar
  • Parámetro 2: El identificador del grupo de datos. Si se ha de graficar datos de diferentes tipos, se le coloca diferentes identificadores.
  • Parámetro 3: La etiqueta de la columna en el gráfico de barras.

Colocaremos el DataSet de la siguiente forma:

jfreechart

Por último iniciaremos la variable Grafica y estableceremos que el gráfico será de barras.

Si agregamos el ChartFactory.createBarChart nos encontramos 8 parámetros que tenemos que “pasarle” al método createBarChart.

Estos parámetros son los siguientes:

  • Parámetro 1: El título del gráfico
  • Parámetro 2: Etiqueta o nombre del eje horizontal
  • Parámetro 3: Etiqueta o nombre del eje vertical.
  • Parámetro 4: El modelo de datos
  • Parámetro 5: Se le agrega PlotOrientation y se decide si se desea que el gráfico sea vertical (PlotOrientation.VERTICAL) u horizontal (PlotOrientation.HORIZONTAL).
  • Parámetro 6: un valor True o False. Si se coloca True se colocará una etiqueta debajo del gráfico que indicará que grupo de datos representa cada color. Por ejemplo, los datos en rojo son del negocio 1, los datos en azul son los del negocio 2, etc…
  • Parámetro 7: Un valor True o False. Si se le coloca True, cuando se le pase el ratón por encima aparecerá una pequeña etiqueta que indica el valor que se halla graficado.
  • Parámetro 8: Un valor True o False. Es para agregar urls. Se deja casi exclusivamente para diseños orientados a la web. Nosotros lo dejaremos en False.

Nosotros utilizaremos los siguientes parámetros:

 

jfreechart

Con esto damos por terminada la programación del chart. Ahora solo tenemos que agregar el gráfico a una ventana.

Vamos al botón que agregamos al principio y colocamos el siguiente código:

 

Netbeans

Ahora estamos listos para probar nuestra aplicación.

Netbeans

Netbeans

Podemos cambiar la orientación del gráfico modificando el ChartFactory.

Netbeans

Netbeans

Ahora probaremos agregando datos de otro negocio. Para ello modificamos el DataSet.

El resultado será el siguiente:

Netbeans

Netbeans

Como vemos, es muy fácil hacer gráficas con JFreeChart.

Podemos cambiar el tipo de gráfico:

Netbeans

Solo basta con escoger un tipo de gráfico en la lista de opciones disponibles, establecer los parámetros y listo.

Espero sus comentarios. Saludos.

  • Jhonny Luis

    amigo como podria agregar eso a un panel dentro del from sin tener que abir una nueva ventana???

  • Jhon Sebastian Botero Lemos

    ufff excelente aporte amigo……………..

    • Antony García González

      Gracias

  • Mat Ten

    hola buen dia increibles todos tus aportes gracias por tu tiempo pero estoy buscando la libreria jcommons y namas no la encuentro saludos desde mexico

    • Antony García González

      Usa Maven

      • Paul

        Mejor gradle

  • Alberto

    buen día, ¿como puedo hacer para que al hacer clic sobre una barra, me deribe mas información sobre ese detalle en otra pantalla?, gracias.

  • Juan Carlos

    Hola, una buena guía rápida para aprender a implementar la librería. Tengo una duda, ¿Es posible gráficar no en una nueva ventana sino sobre el mismo JFrame donde se encuentra el botón? Es decir si se puede obtener varios gráficos sobre un mismo JFrame ordenadamente?

    • Si es posible. En la parte donde se introduce en una nueva ventana se puede cambiar la sentencia para que se introduzca en un panel

  • Jose Luis

    muy bueno muchas gracias por el aporte!!

  • marcela

    GRACIAS.. me sirvio mucho
    cortico pero sustancioso.. jjejejeje

  • Daniel Rico

    Buenisimo gracias 😉