JFreeChart

RECU-0240 (Recurso Ficha Técnica)

Descripción

Es una librería que ofrece la posibilidad de crear todo tipo de gráficas de manera sencilla. Esta desarrollada en JAVA y es de código abierto. Las principales características a reseñar son:

  • Una Api bien documentada que da soporte a un amplio rango de tipos de gráfica.
  • Diseño flexible y fácil de extender pensado para aplicaciones cliente - servidor
  • Puede exportar en ficheros gráficos (JPEG,PNG) y archivos (PDF,EPS,SVG)
  • Presentación de datos en Servlet y JSP
  • Nos ofrece numerosos interfaces para el tratamiento de datos en base al gráfico que queramos crear
  • Manejo de gráficos: funciones de zoom, impresión, ...

Se permite la representación gráfica en los siguientes formatos:

  • Gráficos de tarta: 2d y 3d
  • Gráficos de barras: regulares y en pilas. También ofrece la posibilidad de gráficos 3d
  • Gráficos de líneas y áreas
  • Gráficos de dispersión
  • Gráficos de tiempos
  • Gráficos combinados
  • Diagramas de Gantt

Ejemplo de uso

Cada uno de los posibles gráficos que podemos obtener con JFreeChart necesita unos datos, que son los que se pintarán en dicho gráfico. Estos datos normalmente no se pasan directamente al gráfico, sino que se pasan a una clase encargada de almacenarlos, que se suele conocer como modelo de datos. En este ejemplo vamos a centrarnos en CategoryDataset, que nos permitirá pintar gráficos de barras (BarChart), de áreas (AreaChart), de líneas (LineChart) y de tarta múltiple (MultiplePieChart).

Vamos metiendo los datos de las visitas

/** Sitio web 1 */
    private static final String SITIO_2 = "www.sitio1.com";

    /** Sitio web 2 */
    private static final String SITIO_1 = "www.sitio2.com";

    ...

    // Creamos y rellenamos el modelo de datos
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();

    // Visitas del sitio web 1
    dataset.setValue(100, SITIO_1, "Lunes");
    dataset.setValue(120, SITIO_1, "Martes");
    dataset.setValue(110, SITIO_1, "Miércoles");
    dataset.setValue(103, SITIO_1, "Jueves");
    dataset.setValue(106, SITIO_1, "Viernes");

    // Visitas del sitio web 2
    dataset.setValue(60, SITIO_2, "Lunes");
    dataset.setValue(62, SITIO_2, "Martes");
    dataset.setValue(61, SITIO_2, "Miércoles");
    dataset.setValue(63, SITIO_2, "Jueves");
    dataset.setValue(66, SITIO_2, "Viernes");

Una vez que tenemos los datos metidos en el modelo de datos, para obtener el gráfico con unas opciones por defecto, podemos llamar a la clase ChartFactory. En nuestro ejemplo lo haremos así

JFreeChart chart = ChartFactory.createBarChart3D("Visitas", "día",
   "Número visitas", dataset, PlotOrientation.VERTICAL, true,
   true, false);

Teniendo como resultado algo parecido a

  

Requisitos e incompatibilidades

  • Necesaria la version 1.3 o superior de la JDK
  • Incluir iTex para la exportación PDF
  • Incluir Batik para exportación SVG
  • Incluir Cewulf para la presentación de datos en Servlet y JSP 

Contenidos relacionados

Pautas
Área: Desarrollo » Librerías y Módulos » Java
Código Título Tipo Carácter
LIBP-0344 Librerías para aplicaciones Java Libro de pautas Directriz Recomendada