23
May
09

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 aquí)

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();
	}
}

6 Responses to “Diagrama de barras en java”


  1. 1 paco
    agosto 27, 2010 a las 5:17 am

    ¡Hola!

    ¿Qué tal? Tengo una dudilla con las gráficas en jfreechart.

    ¿Cómo consigo que en un gráfico de barras aparezcan los valores sobre estas? He estado probando y no soy capaz. Muchas gracias!

    • agosto 30, 2010 a las 9:30 am

      Paco pues la verdad tendría que mirar porque no se si es posible

  2. 3 paco
    agosto 31, 2010 a las 2:28 am

    Agradecería tu ayuda. Aunque no sea un gráfico de barras, también me vale en los gráficos de sectories (piecharts). Sólamente necesito que aparezcan los valores numéricos.

    Gracias

    • agosto 31, 2010 a las 10:24 am

      En los piecharts si lo he visto lo que pasa es que ando corto de tiempo en estos días pero en cuanto pueda hago el ejemplo

  3. 5 paco
    septiembre 28, 2010 a las 4:35 am

    ¡Hola de nuevo!

    ingeniods, necesito urgentemente lo de colocar los valores en los gráficos (barras, líneas, piecharts, etc.)

    He probado con algunas opciones pero pone que son deprecated.

    Muchas gracias!

  4. 6 Tadeo
    enero 8, 2014 a las 3:17 pm

    gracias por el aporte me fue de mucha utilidad.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


I+Ds

Dudas consultas
Facebook
Twiter
Google +

Escribe tu dirección de correo electrónico para suscribirte a este blog, y recibir notificaciones de nuevas publicaciones por correo.

Únete a otros 348 seguidores

Ingenio DS en Facebook

Redes Sociales y Archivos

Entradas

mayo 2009
L M X J V S D
« Abr   Jun »
 123
45678910
11121314151617
18192021222324
25262728293031

IngenioDS en twiter


A %d blogueros les gusta esto: