Friday, April 23, 2010

Bueno amigos, aca les envio otra grafica muy interesante, es muy practica para cualquier informe que se quiera presentar.


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package ejemplos;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class BarChartDemo1 extends ApplicationFrame
{
public BarChartDemo1(String title)
{
super(title);
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setFillZoomRectangle(true);
chartPanel.setMouseWheelEnabled(true);
chartPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartPanel);
}

private static CategoryDataset createDataset()
{
String series1 = "First";
String series2 = "Second";
String series3 = "Third";

String category1 = "Category 1";
String category2 = "Category 2";
String category3 = "Category 3";
String category4 = "Category 4";
String category5 = "Category 5";

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(1.0D, series1, category1);
dataset.addValue(4.0D, series1, category2);
dataset.addValue(3.0D, series1, category3);
dataset.addValue(5.0D, series1, category4);
dataset.addValue(5.0D, series1, category5);

dataset.addValue(5.0D, series2, category1);
dataset.addValue(7.0D, series2, category2);
dataset.addValue(6.0D, series2, category3);
dataset.addValue(8.0D, series2, category4);
dataset.addValue(4.0D, series2, category5);

dataset.addValue(4.0D, series3, category1);
dataset.addValue(3.0D, series3, category2);
dataset.addValue(2.0D, series3, category3);
dataset.addValue(3.0D, series3, category4);
dataset.addValue(6.0D, series3, category5);

return dataset;
}

private static JFreeChart createChart(CategoryDataset dataset)
{
JFreeChart chart = ChartFactory.createBarChart("Bar Chart Demo 1 by Jou'Soft", "Category", "Value", dataset, PlotOrientation.VERTICAL, true, true, false);

chart.setBackgroundPaint(Color.white);

CategoryPlot plot = (CategoryPlot)chart.getPlot();

NumberAxis rangeAxis = (NumberAxis)plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

BarRenderer renderer = (BarRenderer)plot.getRenderer();
renderer.setDrawBarOutline(false);

GradientPaint gp0 = new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, new Color(0, 0, 64));

GradientPaint gp1 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F, new Color(0, 64, 0));

GradientPaint gp2 = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, new Color(64, 0, 0));

renderer.setSeriesPaint(0, gp0);
renderer.setSeriesPaint(1, gp1);
renderer.setSeriesPaint(2, gp2);

CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(0.5235987755982988D));

return chart;
}

public static void main(String[] args)
{
BarChartDemo1 demo = new BarChartDemo1("Bar Chart Demo 1 by Jou'Soft");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}



Friday, April 16, 2010

Ejemplo JfreeChart: StackedAreaChartDemo1

Bueno seguimos con la colaboracion de esta gran herramienta:

Codigo Fuente:


package ejemplos;

import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class StackedAreaChartDemo1 extends ApplicationFrame
{
public StackedAreaChartDemo1(String paramString)
{
super(paramString);
JPanel localJPanel = createDemoPanel();
localJPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(localJPanel);
}

public static CategoryDataset createDataset()
{
DefaultCategoryDataset localDefaultCategoryDataset = new DefaultCategoryDataset();
localDefaultCategoryDataset.addValue(1.0D, "S1", "C1");
localDefaultCategoryDataset.addValue(2.0D, "S1", "C2");
localDefaultCategoryDataset.addValue(3.0D, "S1", "C3");
localDefaultCategoryDataset.addValue(4.0D, "S1", "C4");
localDefaultCategoryDataset.addValue(5.0D, "S1", "C5");
localDefaultCategoryDataset.addValue(6.0D, "S1", "C6");
localDefaultCategoryDataset.addValue(7.0D, "S1", "C7");
localDefaultCategoryDataset.addValue(8.0D, "S1", "C8");
localDefaultCategoryDataset.addValue(6.0D, "S2", "C1");
localDefaultCategoryDataset.addValue(3.0D, "S2", "C2");
localDefaultCategoryDataset.addValue(4.0D, "S2", "C3");
localDefaultCategoryDataset.addValue(3.0D, "S2", "C4");
localDefaultCategoryDataset.addValue(9.0D, "S2", "C5");
localDefaultCategoryDataset.addValue(7.0D, "S2", "C6");
localDefaultCategoryDataset.addValue(2.0D, "S2", "C7");
localDefaultCategoryDataset.addValue(3.0D, "S2", "C8");
localDefaultCategoryDataset.addValue(1.0D, "S3", "C1");
localDefaultCategoryDataset.addValue(7.0D, "S3", "C2");
localDefaultCategoryDataset.addValue(6.0D, "S3", "C3");
localDefaultCategoryDataset.addValue(7.0D, "S3", "C4");
localDefaultCategoryDataset.addValue(4.0D, "S3", "C5");
localDefaultCategoryDataset.addValue(5.0D, "S3", "C6");
localDefaultCategoryDataset.addValue(3.0D, "S3", "C7");
localDefaultCategoryDataset.addValue(1.0D, "S3", "C8");
return localDefaultCategoryDataset;
}

public static JFreeChart createChart(CategoryDataset paramCategoryDataset)
{
JFreeChart localJFreeChart = ChartFactory.createStackedAreaChart("Stacked Area Chart by (Jou'Soft)", "Category", "Value", paramCategoryDataset, PlotOrientation.VERTICAL, true, true, false);
CategoryPlot localCategoryPlot = (CategoryPlot)localJFreeChart.getPlot();
localCategoryPlot.setForegroundAlpha(0.85F);
CategoryAxis localCategoryAxis = localCategoryPlot.getDomainAxis();
localCategoryAxis.setLowerMargin(0.0D);
localCategoryAxis.setUpperMargin(0.0D);
localCategoryAxis.setCategoryMargin(0.0D);
NumberAxis localNumberAxis = (NumberAxis)localCategoryPlot.getRangeAxis();
localNumberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
CategoryItemRenderer localCategoryItemRenderer = localCategoryPlot.getRenderer();
localCategoryItemRenderer.setBaseItemLabelsVisible(true);
return localJFreeChart;
}

public static JPanel createDemoPanel()
{
JFreeChart localJFreeChart = createChart(createDataset());
return new ChartPanel(localJFreeChart);
}

public static void main(String[] paramArrayOfString)
{
StackedAreaChartDemo1 localStackedAreaChartDemo1 = new StackedAreaChartDemo1("JFreeChart: StackedAreaChartDemo1.java (by Jou'Soft)");
localStackedAreaChartDemo1.pack();
RefineryUtilities.centerFrameOnScreen(localStackedAreaChartDemo1);
localStackedAreaChartDemo1.setVisible(true);
}
}


El resultado seria el siguiente:

Ejemplo jfreeChart: AreaChartDemo1

Bueno amigos, traigo una serie de codigos fuentes de varios ejemplos de la grandiosa herramienta jfreechart, la cual me he tomado la molestia de hacer los ejemplos de cada una de las graficas que existen, espero les sea de utilidad y cualquier duda me la hagan saber y me escriban a elnapster@gmail.com

AreaChartDemo1:

Codigo Fuente:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package ejemplos;

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;
import org.jfree.ui.VerticalAlignment;
import org.jfree.util.UnitType;

public class AreaChartDemo1 extends ApplicationFrame
{
public AreaChartDemo1(String paramString)
{
super(paramString);
JPanel localJPanel = createDemoPanel();
localJPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(localJPanel);
}

private static CategoryDataset createDataset()
{
DefaultCategoryDataset localDefaultCategoryDataset = new DefaultCategoryDataset();
localDefaultCategoryDataset.addValue(1.0D, "Series 1", "Type 1");
localDefaultCategoryDataset.addValue(4.0D, "Series 1", "Type 2");
localDefaultCategoryDataset.addValue(3.0D, "Series 1", "Type 3");
localDefaultCategoryDataset.addValue(5.0D, "Series 1", "Type 4");
localDefaultCategoryDataset.addValue(5.0D, "Series 1", "Type 5");
localDefaultCategoryDataset.addValue(7.0D, "Series 1", "Type 6");
localDefaultCategoryDataset.addValue(7.0D, "Series 1", "Type 7");
localDefaultCategoryDataset.addValue(8.0D, "Series 1", "Type 8");
localDefaultCategoryDataset.addValue(5.0D, "Series 2", "Type 1");
localDefaultCategoryDataset.addValue(7.0D, "Series 2", "Type 2");
localDefaultCategoryDataset.addValue(6.0D, "Series 2", "Type 3");
localDefaultCategoryDataset.addValue(8.0D, "Series 2", "Type 4");
localDefaultCategoryDataset.addValue(4.0D, "Series 2", "Type 5");
localDefaultCategoryDataset.addValue(4.0D, "Series 2", "Type 6");
localDefaultCategoryDataset.addValue(2.0D, "Series 2", "Type 7");
localDefaultCategoryDataset.addValue(1.0D, "Series 2", "Type 8");
localDefaultCategoryDataset.addValue(4.0D, "Series 3", "Type 1");
localDefaultCategoryDataset.addValue(3.0D, "Series 3", "Type 2");
localDefaultCategoryDataset.addValue(2.0D, "Series 3", "Type 3");
localDefaultCategoryDataset.addValue(3.0D, "Series 3", "Type 4");
localDefaultCategoryDataset.addValue(6.0D, "Series 3", "Type 5");
localDefaultCategoryDataset.addValue(3.0D, "Series 3", "Type 6");
localDefaultCategoryDataset.addValue(4.0D, "Series 3", "Type 7");
localDefaultCategoryDataset.addValue(3.0D, "Series 3", "Type 8");
return localDefaultCategoryDataset;
}

private static JFreeChart createChart(CategoryDataset paramCategoryDataset)
{
JFreeChart localJFreeChart = ChartFactory.createAreaChart("Area Chart", "Category", "Value", paramCategoryDataset, PlotOrientation.VERTICAL, true, true, false);
localJFreeChart.setBackgroundPaint(Color.white);
TextTitle localTextTitle = new TextTitle("An area chart demonstration. We use this subtitle as an example of what happens when you get a really long title or subtitle.");
localTextTitle.setPosition(RectangleEdge.TOP);
localTextTitle.setPadding(new RectangleInsets(UnitType.RELATIVE, 0.05D, 0.05D, 0.05D, 0.05D));
localTextTitle.setVerticalAlignment(VerticalAlignment.BOTTOM);
localJFreeChart.addSubtitle(localTextTitle);
CategoryPlot localCategoryPlot = (CategoryPlot)localJFreeChart.getPlot();
localCategoryPlot.setForegroundAlpha(0.5F);
localCategoryPlot.setDomainGridlinesVisible(true);
CategoryAxis localCategoryAxis = localCategoryPlot.getDomainAxis();
localCategoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
localCategoryAxis.setLowerMargin(0.0D);
localCategoryAxis.setUpperMargin(0.0D);
localCategoryAxis.addCategoryLabelToolTip("Type 1", "The first type.");
localCategoryAxis.addCategoryLabelToolTip("Type 2", "The second type.");
localCategoryAxis.addCategoryLabelToolTip("Type 3", "The third type.");
NumberAxis localNumberAxis = (NumberAxis)localCategoryPlot.getRangeAxis();
localNumberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
localNumberAxis.setLabelAngle(0.0D);
ChartUtilities.applyCurrentTheme(localJFreeChart);
return localJFreeChart;
}

public static JPanel createDemoPanel()
{
JFreeChart localJFreeChart = createChart(createDataset());
return new ChartPanel(localJFreeChart);
}

public static void main(String[] paramArrayOfString)
{
AreaChartDemo1 localAreaChartDemo1 = new AreaChartDemo1("JFreeChart: AreaChartDemo1.java");
localAreaChartDemo1.pack();
RefineryUtilities.centerFrameOnScreen(localAreaChartDemo1);
localAreaChartDemo1.setVisible(true);
}
}


Como resultado final obtendremos:


Monday, April 12, 2010

Instalación de JFreeChart

.- REQUISITOS

Es necesario descargar descargar el paquete JFreeChart ; opcionalmente se recomienda descargar también el paquete JCommon. Aunque una versión parcial del mismo ya viene incluido dentro de JFreeChart.


I- CONFIGURACIÓN DE EL JFREECHART Y EL JCOMMON

A continuación iniciaremos los pasos para poder configurar JFreeChart en la IDE NetBeans :

  1. Una vez que descargamos el paquete JFreeChart y el paquete JCommon lo descomprimimos en un directorio de la PC .image
  2. Ahora abriremos el NetBeans para configurar las librerías de JFreeChart y JCommon , por lo tanto en NetBeans nos vamos al menú Tools y Seleccionamos Libraries :image
  3. Hacemos clic en New Library y escribimos “JCommon-1.0.16” como nombre de la librería luego iremos a la pestaña Classpath → Add Jar/Folder y luego buscamos la dirección del JCommon descargado anteriormente y seleccionamos el archivo JCommon-1.0.16.jar :image image
  4. Hacemos lo mismo con el jar que descargamos del JfreeChart , OJo que el jar que seleccionamos en este caso es el de la carpeta lib .image
  5. Hecho esto ya tenemos configurado las librerías de JFreechart y JCommon en el NetBeans ; hora ya podremos generar un gráfico .