Gráfico Pie y de Barras con JFreeChart

Primero necesitaremos las siguientes librerías:

jfreechart-1.0.13.jar

jcommon-1.0.16.jar

 

Si tienes JasperReports, esas librerías ya se incluyen en la carpeta “lib” (en el directorio donde tengas descomprimido JasperReports).

 

El siguiente ejemplo consta de la gráfica pie que indicará la cantidad de taxis disponibles y no disponibles (ocupados), y además de un gráfico de barras que indica el progreso de los taxis (que cantidad de carreras han hecho) según pasan los días.

 

1. Creamos un nuevo proyecto, para el ejemplo, basta un “Java Application”. El proyecto tendrá de nombre “PieChart”.

 

2. Añadimos las dos librerías mencionadas al inicio, dando clic derecho a “Bibliotecas” y eligiendo “Agregar archivo JAR/Carpeta” del menú desplegable.

image

 

3. En el código ya de nuestro programa, añadimos la siguiente función:

//crea un frame donde se encuentra el gráfico
static ChartFrame mostrarGrafico(JFreeChart grafico, String titulo)
{
    ChartFrame frame=new ChartFrame(titulo,grafico);
    frame.pack();
    frame.setVisible(true);
    return frame;
}

 

Deberemos reparar las importaciones de ser necesario (Clic derecho – Reparar importanciones).

 

4. Añadir el siguiente código al main para crear la gráfica tipo pie:

//Datos del gráfico
DefaultPieDataset datos = new DefaultPieDataset();
datos.setValue("Ocupados",450);
datos.setValue("Disponibles",200);
//se pueden seguir añadiendo más datos y la gráfica los acomodará en porcentajes

JFreeChart graficoPie = ChartFactory.createPieChart3D(
                   "Total de Taxis", //título del gráfico
                   datos,            //datos
                   true,             //mostrar leyendas
                   true,             //mostrar tooltips
                   false);           //Locale, sin gran importancia

mostrarGrafico(graficoPie,"Gráfico Pie");

 

Reparar importaciones de ser necesario.

Si deseas un gráfico sin diseño 3D puedes usar en vez de createPieChart3D, usas createPieChart.

 

5. Añadir el siguiente código al main para crear una gráfica tipo barras:

//datos del gráfico
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
String taxi1 = "Taxi 1";
String taxi2 = "Taxi 2";

String dia1 = "Día 1";
String dia2 = "Día 2";
String dia3 = "Día 3";
String dia4 = "Día 4";

dataset.addValue(18, taxi1,dia1);
dataset.addValue(15, taxi1,dia2);
dataset.addValue(16, taxi1,dia3);
dataset.addValue(12, taxi1,dia4);

dataset.addValue(16, taxi2,dia1);
dataset.addValue(19, taxi2,dia2);
dataset.addValue(10, taxi2,dia3);
dataset.addValue(11, taxi2,dia4);

JFreeChart graficoBarras = ChartFactory.createBarChart(
         "Uso de los Taxis",        //Título de la gráfica
         "Días de labor",           //leyenda Eje horizontal
         "Número de carreras",      //leyenda Eje vertical
         dataset,                   //datos
         PlotOrientation.VERTICAL,  //orientación
         true,                      //incluir leyendas
         true,                      //mostrar tooltips
         true);                   

graficoBarras.setBackgroundPaint(Color.LIGHT_GRAY);

CategoryPlot plot =(CategoryPlot) graficoBarras.getPlot();
plot.setBackgroundPaint(Color.CYAN); //fondo del grafico
plot.setDomainGridlinesVisible(true);//lineas de rangos, visibles
plot.setRangeGridlinePaint(Color.BLACK);//color de las lineas de rangos

mostrarGrafico(graficoBarras,"Gráfico de barras");

 

Reparar importaciones de ser necesario.

 

Si deseas un gráfico con diseño 3D (sencillo) puedes usar en vez de createBarChart, usas createBarChart3D.

 

6. Correr el programa (F6).

image

image