Como usar JFreeChart?

Iniciado por Xedrox, 8 Marzo 2011, 04:40 AM

0 Miembros y 1 Visitante están viendo este tema.

Xedrox

Hola , alguien tendría un ejemplo de código de como usa esas librerías, uso Netbeans y no se como vincular los archivos que me baje con un proyecto. Alguien lo uso una vez?  me da una mano con un ejemplo y como vincular la librería nueva :S


Muchas Gracias. Saludos!

La idea mia es hacer que esto funcione, pero eclipe no encuentra las librerias "org.jfree..", ya inclui con el "add external jar" pero sigue sin reconocerla, pego el codigo de ejemplo que encontre:



import java.awt.Color;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.axis.Axis;

import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.chart.labels.XYItemLabelGenerator;

/**
* Una simple programa para demostrar como funciona la creacion de un linechar desde un XYDataset
* {@link XYDataset}.
* <p>
* IMPORTANT NOTE: THIS DEMO IS DOCUMENTED IN THE JFREECHART DEVELOPER GUIDE.
* DO NOT MAKE CHANGES WITHOUT UPDATING THE GUIDE ALSO!!
*
* NOTA: ESTA DEMOSTRACIÓN ESTA DOCUMENTADA EN AL GUIA DE DESARROLLO JFREECHART
* NO HAGAS CAMBIOS SIN ACTUALIZAR LA GUIA TAMBIÉN !!
*/
public class LineChart extends ApplicationFrame {
/**
* Crear un nuevo demo
*
* @param title Titulo del frame
*/
public LineChart(String title) {
super(title);
XYDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
setContentPane(chartPanel);
}
/**
* Creando un conjunto de datos de ejemplo
*
* @return ejemplo de un conjunto de datos
*/
private static XYDataset createDataset() {
XYSeries series1 = new XYSeries("Primero");
series1.add(1.0, 1.0);
series1.add(2.0, 4.0);
series1.add(3.0, 3.0);
series1.add(4.0, 5.0);
series1.add(5.0, 5.0);
series1.add(6.0, 7.0);
series1.add(7.0, 7.0);
series1.add(8.0, 8.0);
XYSeries series2 = new XYSeries("Segundo");
series2.add(1.0, 5.0);
series2.add(2.0, 7.0);
series2.add(3.0, 6.0);
series2.add(4.0, 8.0);
series2.add(5.0, 4.0);
series2.add(6.0, 4.0);
series2.add(7.0, 2.0);
series2.add(8.0, 1.0);
XYSeries series3 = new XYSeries("Tercero");
series3.add(3.0, 4.0);
series3.add(4.0, 3.0);
series3.add(5.0, 2.0);
series3.add(6.0, 3.0);
series3.add(7.0, 6.0);
series3.add(8.0, 3.0);
series3.add(9.0, 4.0);
series3.add(10.0, 3.0);
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(series1);
dataset.addSeries(series2);
dataset.addSeries(series3);
return dataset;
}
/**
* Creando el grafico
*
* @param dataset datos para el grafico
*
* @return un grafico
*/
private static JFreeChart createChart(XYDataset dataset) {
// create the chart...
JFreeChart chart = ChartFactory.createXYLineChart(
"Line Chart", // Titulo de grafico
"X", // Etiqueta del eje x
"Y", // Etiqueta del eje y
dataset, // data
PlotOrientation.VERTICAL,
true, // incluye leyenda
true, // visualiza tooltips
false // urls
);
// AHORA PERSONALIZAMOS(le damos pinta) ALGO EL GRAFICO...
chart.setBackgroundPaint(Color.white);
// consigue una referencia para el plot en futuras personalizaciones...
XYPlot plot = (XYPlot) chart.getPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
// Permite visualizar las coordenadas trazando ejes
plot.setDomainCrosshairVisible(true);
plot.setRangeCrosshairVisible(true);

XYLineAndShapeRenderer renderer
= (XYLineAndShapeRenderer) plot.getRenderer();
XYItemLabelGenerator xy = new StandardXYItemLabelGenerator();
renderer.setBaseItemLabelGenerator(xy);
renderer.setShapesVisible(true);
renderer.setShapesFilled(true);
//renderer.setBaseItemLabelVisible(true);
renderer.setBaseLinesVisible(true);
renderer.setBaseItemLabelsVisible(true);

// Cambiando la unidad de seleccion auto tickchange a enteros solamente...
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
// PERSONALIZACION OPCIONAL COMPLETA.

//Axis axis = plot.getDomainAxis();
//axis.setTickMarksVisible(true);

return chart;
}
/**
* Crea un panel para la demostracion (Usado por SuperDemo.java).
*
* @return un Panel.
*/
public static JPanel createDemoPanel() {
JFreeChart chart = createChart(createDataset());
return new ChartPanel(chart);
}
/**
* Inicia la demostracion de la aplicacion
*
* @param args ignorado.
*/
public static void main(String[] args) {
LineChart demo = new LineChart("Line Chart con XYDataset");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}



1mpuls0

Necesitas 2 librerías:

jcommon-1.0.16.jar
jfreechart-1.0.13.jar

Puedes descargarlos de aquí.

http://sourceforge.net/projects/jfreechart/files/1.%20JFreeChart/1.0.13/jfreechart-1.0.13.zip/download

Se enecuentran en la carpeta "lib"

Si no te funciona es porque estas importando mal las librerías.

Saludos.
abc