martes, 31 de mayo de 2011

Ejemplo 4: Gráfico de Barras y Personalización de un Chart

Archivo PNG generado


package jfree;

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;

public class BarChart {

public static void main(String[] args) throws IOException {
// TODO code application logic here
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(5, "jalados", "José");
dataset.setValue(5, "jalados", "Ronny");
dataset.setValue(4, "jalados", "Frank");
dataset.setValue(2, "jalados", "Sumire");
dataset.setValue(0, "jalados", "Maribel");
dataset.setValue(-1, "jalados", "Ian");
dataset.setValue(10, "aprobados", "José");
dataset.setValue(9, "aprobados", "Ronny");
dataset.setValue(12, "aprobados", "Frank");
dataset.setValue(13, "aprobados", "Sumire");
dataset.setValue(15, "aprobados", "Maribel");
dataset.setValue(12, "aprobados", "Ian");
JFreeChart chart = ChartFactory.createBarChart3D("Nivel de ignorancia",
"Estudiantes", "Cursos jalados",
dataset, PlotOrientation.VERTICAL, true, true, false);
BufferedImage img = ImageIO.read(new File("src/img/cars.jpg"));
chart.setBackgroundImage(img);
CategoryPlot plot = chart.getCategoryPlot();
plot.setBackgroundImage(img);
BarRenderer render = (BarRenderer)plot.getRenderer();
render.setSeriesPaint(0, Color.darkGray);
render.setSeriesPaint(1, Color.LIGHT_GRAY);
chart.setBackgroundPaint(Color.RED);
try{
ChartUtilities.saveChartAsPNG(new File("C:\\barras.png"), chart, 500, 400);
}
catch(IOException e){
System.out.println("Error al crear el archivo");
}
ChartFrame frame = new ChartFrame("Gráfico de Barras", chart);
frame.pack();
frame.setVisible(true);
}
}


Espero te haya ayudado este tutorial, visita mi nuevo proyecto Test de Velocidad en el Teclado http://clubtyping.com/es

6 comentarios:

  1. Alguien sabe,como se puede hacer para que aplastando un boton salga este grafico?¿?

    ResponderEliminar
    Respuestas
    1. Haces una funcion Action Performed para el boton deseado, y dentro de esta, puedes llamar a la funcion que contenga este codigo. Un ejemplo:
      private void BotonActionPerformed(java.awt.event.ActionEvent evt)
      { graficar();
      }
      Y que la funcion graficar contenga el codigo aqui planteado.
      Saludos.

      Eliminar
  2. Una consulta me salio todo bien, pero no habrá alguna linea de codio el cual me permita ver los datos fijos de una barra porque si es 11 esta en medio de 10 y 12 y el usuario que lo ve no sabe si es 11.1 , 11.2 , 11.3 .. noce si me explico.
    Gracias por el aporte! ;D

    ResponderEliminar
  3. Muchisimas grácias! Funcionò a la perfección.

    Hasta ahora, el mejor ejemplo que he encontrado.

    Se agradece i felicidades por este blog!

    ResponderEliminar
  4. Buen tutoria!
    como podemos obetener los valores maximos y minimo en el dataset para pintar las barras correspondientes en otro color???
    gracias!!!

    ResponderEliminar
  5. King Casino Login | All your games online and - Community Khabar
    Login King Casino, Play, and Win! Login King deccasino Casino, Play. Login https://jancasino.com/review/merit-casino/ King communitykhabar Casino, Play. septcasino.com Login King Casino, Play. Login King Casino, Play. Login King Casino, Play. Login King Casino,

    ResponderEliminar