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