Primero necesitaremos las siguientes librerías:
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.
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).