Jfreechart

5 respostas
z3r00

:twisted: Primeiro eu gostaria de demonstrar minha raiva quanto ao preco cobrado por um TUTORIAL de JFREECHART…que absurdo… essa porra é free-sourcecode ou nao???

mas enfim, dexa pra la, o meu problema mesmo é que eu preciso fazer um LineChart com mais de uma Line… com uma linha eu ja fiz mas agora eu nao sei como fazer com duas ou mais… alguem pode me ajudar???

ABracos!!!

5 Respostas

vamorim

Se o código é livre, os demos deveriam ser livres também. Bom, acho que os desenvolvedores esqueceram disso. :cry: Deveríamos lembrá-los disso! Ah, que nada, devem estar muito ocupados. É melhor não importuná-los. Afinal, podemos resolver isso usando JAD (Java Decompiler) :twisted:

import java.awt.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.LineAndShapeRenderer;
import org.jfree.data.CategoryDataset;
import org.jfree.data.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class LineChartDemo1 extends ApplicationFrame
{

	public LineChartDemo1(String title)
	{
		super(title);
		CategoryDataset dataset = createDataset();
		JFreeChart chart = createChart(dataset);
		ChartPanel chartPanel = new ChartPanel(chart);
		chartPanel.setPreferredSize(new Dimension(500, 270));
		setContentPane(chartPanel);
	}

	private CategoryDataset createDataset()
	{
		String series1 = "First";
		String series2 = "Second";
		String series3 = "Third";
		String type1 = "Type 1";
		String type2 = "Type 2";
		String type3 = "Type 3";
		String type4 = "Type 4";
		String type5 = "Type 5";
		String type6 = "Type 6";
		String type7 = "Type 7";
		String type8 = "Type 8";
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(1.0D, series1, type1);
		dataset.addValue(4D, series1, type2);
		dataset.addValue(3D, series1, type3);
		dataset.addValue(5D, series1, type4);
		dataset.addValue(5D, series1, type5);
		dataset.addValue(7D, series1, type6);
		dataset.addValue(7D, series1, type7);
		dataset.addValue(8D, series1, type8);
		dataset.addValue(5D, series2, type1);
		dataset.addValue(7D, series2, type2);
		dataset.addValue(6D, series2, type3);
		dataset.addValue(8D, series2, type4);
		dataset.addValue(4D, series2, type5);
		dataset.addValue(4D, series2, type6);
		dataset.addValue(2D, series2, type7);
		dataset.addValue(1.0D, series2, type8);
		dataset.addValue(4D, series3, type1);
		dataset.addValue(3D, series3, type2);
		dataset.addValue(2D, series3, type3);
		dataset.addValue(3D, series3, type4);
		dataset.addValue(6D, series3, type5);
		dataset.addValue(3D, series3, type6);
		dataset.addValue(4D, series3, type7);
		dataset.addValue(3D, series3, type8);
		return dataset;
	}

	private JFreeChart createChart(CategoryDataset dataset)
	{
		JFreeChart chart = ChartFactory.createLineChart("Line Chart Demo 1", "Type", "Value", dataset, PlotOrientation.VERTICAL, true, true, false);
		StandardLegend legend = (StandardLegend)chart.getLegend();
		legend.setDisplaySeriesShapes(true);
		legend.setShapeScaleX(1.5D);
		legend.setShapeScaleY(1.5D);
		legend.setDisplaySeriesLines(true);
		chart.setBackgroundPaint(Color.white);
		CategoryPlot plot = chart.getCategoryPlot();
		plot.setBackgroundPaint(Color.lightGray);
		plot.setRangeGridlinePaint(Color.white);
		NumberAxis rangeAxis = (NumberAxis)plot.getRangeAxis();
		rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
		rangeAxis.setAutoRangeIncludesZero(true);
		rangeAxis.setUpperMargin(0.20000000000000001D);
		rangeAxis.setLabelAngle(1.5707963267948966D);
		LineAndShapeRenderer renderer = (LineAndShapeRenderer)plot.getRenderer();
		renderer.setDrawShapes(true);
		renderer.setSeriesStroke(0, new BasicStroke(2.0F, 1, 1, 1.0F, new float[] {
			10F, 6F
		}, 0.0F));
		renderer.setSeriesStroke(1, new BasicStroke(2.0F, 1, 1, 1.0F, new float[] {
			6F, 6F
		}, 0.0F));
		renderer.setSeriesStroke(2, new BasicStroke(2.0F, 1, 1, 1.0F, new float[] {
			2.0F, 6F
		}, 0.0F));
		renderer.setItemLabelsVisible(true);
		renderer.setPositiveItemLabelPosition(new ItemLabelPosition());
		renderer.setNegativeItemLabelPosition(new ItemLabelPosition());
		return chart;
	}

	public static void main(String args[])
	{
		LineChartDemo1 demo = new LineChartDemo1("Line Chart Demo");
		demo.pack();
		RefineryUtilities.centerFrameOnScreen(demo);
		demo.setVisible(true);
	}
}
TedLoprao

Opa, opa, opa!!!

Os demos se encontram dentro da pasta src do JFreeChart, o caminho completo é:

src/org/jfree/chart/demo

O q eles cobram é pela documentação completa!!!

Fallow

vamorim

Nossa! Já posso até dormir em paz novamente…

geidivan

Como faço para definir a escala do meu gráfico (Gráfico de barras 3D) ?

H

Eu também fiz alguns teste com o JFreeChart pareceu ser bem legal
http://emdia.wordpress.com/2008/10/26/grafico-em-java/

Criado 28 de maio de 2004
Ultima resposta 20 de nov. de 2008
Respostas 5
Participantes 5