import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.chart.JFreeChart; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.ChartUtilities; import org.jfree.chart.plot.PlotOrientation; import java.awt.Dimension; import javax.swing.*; import java.io.File; public class VentanaDiagrama extends JFrame { public VentanaDiagrama(){ //Un DataSet es donde guardamos los datos //que luego graficaremos // en este caso usaremos DefaultCategoryDataset //aunque hay muchos mas DefaultCategoryDataset dataset = new DefaultCategoryDataset(); DefaultCategoryDataset datasetArchivo = new DefaultCategoryDataset(); String equipos[]={"Emena","Gacellas","","MMC","R4"}; Integer i = 0; for (i = 0; i<=equipos.length-1;i++){ int g=(int)(Math.random()*10); int e=(int)(Math.random()*10); int p=(int)(Math.random()*10); //agregarValor valor,categoria,elemento dataset.addValue(g, "Ganados", equipos[i] ); dataset.addValue(e, "Empatados", equipos[i]); dataset.addValue(p, "Perdidos", equipos[i]); //utilizamos 2 dataset para guardar la misma informacion abajo explicacion datasetArchivo.addValue(g, "Ganados", equipos[i]); datasetArchivo.addValue(e, "Empatados", equipos[i]); datasetArchivo.addValue(p, "Perdidos", equipos[i]); } /*Aqui es donde convertimos esos datos que tenemos en el dataset en un driagrama o mejor dicho en un JFreeChart*/ JFreeChart chart = ChartFactory.createBarChart("Tabla de Equipos", "Equipos", "Partidos", dataset, PlotOrientation.HORIZONTAL, true, true, true); /*JFreeChart chart = ChartFactory.createBarChart(titulo de la tabla, nombre de la categoria, nombre de los valores, dataset, orientacion, leyendas, tooltips, URLs);*/ /*luego que lo convertimos en un diagrama bueno aun no lo podemos mostrar asi que en *este paso lo convertimos en un ChartPanel esto si es un componente visual*/ ChartPanel chartPanel = new ChartPanel(chart, false); /*le damos un tamaño chartPanel.setPreferredSize(new Dimension(500, 500));*/ chartPanel.setPreferredSize(new Dimension(500, 500)); setContentPane(chartPanel); //esto es para pegarlo a la ventana pack(); setVisible(true); //mostramos la ventana try { /*estas lineas que estan dentro de try son para generar un JPEG apartir de los datos en el *dataset, pero si se usa el msmo por alguna razon que no comprendo se proboca un error usen el mismo en los dos y lo vetan*/ JFreeChart chartArchivo= ChartFactory.createBarChart("Tabla de Equipos", "Equipos", "Partidos", datasetArchivo, PlotOrientation.HORIZONTAL, true, true, true); /*aqui es donde generamos el archivo jpeg*/ ChartUtilities.saveChartAsJPEG(new File("imagen.jpeg"),chartArchivo,this.getHeight(),this.getWidth()); }catch (Exception ex) { /*si ocurre algun error lo mostramos por aqui*/ System.out.println (ex); } } public static void main (String[] args) { new VentanaDiagrama(); } }
sábado, 23 de mayo de 2009
Diagrama de barras en java
Bueno para generar diagramas de barras partes y toda clase de diagramas de estadísticas existe esta API JFreeChart y la puedes descargar aquí
la imagen generada es esta así se debe ver la ventana
el código es este (descargalo aqui)
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario
DEJA UN COMENTARIO...
SI NO LO DICES NO LO SE