JFreeChart - Valores reais dentro do gráfico

isso ajuda

plot.setCircular(false); :

[quote=Fernando Generoso da Rosa]alepenchel, tenta isso:

ItemLabelPosition p = new ItemLabelPosition(ItemLabelAnchor.INSIDE12,
		        TextAnchor.CENTER_RIGHT, TextAnchor.CENTER_RIGHT,
		        -Math.PI / 2.0);
		renderer.setBasePositiveItemLabelPosition(p);

		ItemLabelPosition p2 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,
		        TextAnchor.CENTER_LEFT, TextAnchor.CENTER_LEFT, -Math.PI / 2.0);
		renderer.setPositiveItemLabelPositionFallback(p2);

Fernando[/quote]

Valew a dica Fernando…de umas ajustadas para o que eu queria.
agora ta funcionando que é uma blz.

PROBLEMA RESOLVIDO

Abraços.

Mas eu quero definir quantos graus eu quero ‘deitar’ a pizza. Tipo, 20 graus.

Cara,

Estou pra te dizer que não tem um método que faça isso. o que tu pode fazer para “melhorar” ou chegar perto é:

RectangleInsets ri = new RectangleInsets(100.0, 50.0, 100.0, 50.0);
		plot.setInsets(ri);

Fernando

YAHOOO!!

Beleza. Mas a área de plotagem tá diminuindo. Como mantenho? rsrs.

O RectangleInsets provavelmente define a área de plotagem…

Aí tu teria que trabalhar de uma forma que ele alongasse o teu gráfico para dar a impressão de estar “deitado”, e também tivesse uma área de visualização boa…testa vários valores e tenta achar um padrão…hehehe

Fernando

Olá Pessoal.

Estou prescisando de outra ajuda…

Estou gerando um gráfico de linhas, e por default, a jfreechart gera os posntos do grafico no formato de quadrados.
Estou querendo modificar esse formato para circulos e tambem mudar a cor interna desses pontos.

No máximo consegui deixar transparente…

se alguem puder me ajudar.

exemplo de como kero deixar os pontos:
http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/renderer/category/LineAndShapeRenderer.html

Desde já agradecido pessoal.

vê se esse código te dá uma luz…

LineAndShapeRenderer renderer
            = (LineAndShapeRenderer) plot.getRenderer();
renderer.setSeriesShape(2, ShapeUtilities.createDiamond(4.0f));
renderer.setUseFillPaint(true);
		renderer.setBaseFillPaint(Color.WHITE);

Fernando

[quote=Fernando Generoso da Rosa]vê se esse código te dá uma luz…

LineAndShapeRenderer renderer
            = (LineAndShapeRenderer) plot.getRenderer();
renderer.setSeriesShape(2, ShapeUtilities.createDiamond(4.0f));
renderer.setUseFillPaint(true);
		renderer.setBaseFillPaint(Color.WHITE);

Fernando[/quote]

Valew Fernando…

pra mudar de formato os pontos eu não consegui…

mas foi d grande ajuda na mudança da cor…

Agradecido.
Abraços.

Esse código muda o shape para o formato de elipse:

renderer.setSeriesShape(0, new Ellipse2D.Double(-5.0, -5.0, 10.0, 10.0));

Fernando

[quote=Fernando Generoso da Rosa]Esse código muda o shape para o formato de elipse:

renderer.setSeriesShape(0, new Ellipse2D.Double(-5.0, -5.0, 10.0, 10.0));

Fernando[/quote]

Cara…tu é bom.
resolveu todos meu problemas.

mto obrigado msm…

tava fods procurando na net
achei alguns exemplos bons na net…
mas saum mto básicos.

Vlw novamente.

PROBLEMA RESOLVIDO

Boa tarde galera

Alguem teria um tutorial para essa API (JFreeChart), ou algum exemplo completo que usa ela?

Valeu

Quando vc faz o donwload da api, o arquivo zip já contém um demo (acho que tem um pacote demo).

Exemplo Pizza:

[code]import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class GraficoPizzaDemo extends ApplicationFrame {

/** 
  *  
  */
private static final long serialVersionUID = 1L;

public GraficoPizzaDemo() {
	super(null);
	this.setTitle("Grafico de Pizza");
	JPanel jpanel = PanelDemostracao();
	jpanel.setPreferredSize(new Dimension(500, 270));
	setContentPane(jpanel);
}

private static PieDataset criaDadosGrafico() {
	DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
	defaultpiedataset.setValue("Conteúdo 1", 43.23D);
	defaultpiedataset.setValue("Conteúdo 2", 10D);
	defaultpiedataset.setValue("Conteúdo 3", 27.5D);
	defaultpiedataset.setValue("Conteúdo 4", 17.5D);
	defaultpiedataset.setValue("Conteúdo 5", 11D);
	defaultpiedataset.setValue("Conteúdo 6", 19.39D);
	return defaultpiedataset;
}

private static JFreeChart criaGrafico(PieDataset piedataset) {
	JFreeChart jfreechart = ChartFactory.createPieChart(
			"Gráfico Pizza Demo ", piedataset, true, true, false);
	PiePlot plotagem = (PiePlot) jfreechart.getPlot();
	plotagem.setLabelGenerator(new StandardPieSectionLabelGenerator(
			"{0} ({2})"));// define porcentagem no gráfico
	plotagem.setLabelBackgroundPaint(new Color(220, 220, 220));
	return jfreechart;
}

public static JPanel PanelDemostracao() {
	JFreeChart jfreechart = criaGrafico(criaDadosGrafico());
	return new ChartPanel(jfreechart);
}

public static void main(String args[]) {
	GraficoPizzaDemo demo = new GraficoPizzaDemo();
	demo.pack();
	RefineryUtilities.centerFrameOnScreen(demo);
	demo.setVisible(true);
}

}[/code]

Outro exemplo pode ser encontrado em:

[quote=Djonatah]Boa tarde galera

Alguem teria um tutorial para essa API (JFreeChart), ou algum exemplo completo que usa ela?

Valeu[/quote]

um tutorial completo sobre isso…ja to cansado d procura e nada.
mas…Esse site possui exemplos bons.
da uma olhada q pode t ajudar.

http://www.java2s.com/Code/Java/Chart/CatalogChart.htm

abraços.

Eu tenho mais uma pergunta,

Seria possivel gerar um PNG B&W?
(Eu criei um topico sobre isto, mas ainda não obtive resposta.)

Abraços,

E muito obrigado pelos exemplos :smiley:

<><

Pra falar a verdade, nem o tutorial do jfreechart é “tão” completo assim…o que vale muito a pena são os exemplos. Vale cada centavo pago pela documentação.

Fernando

[quote=Djonatah]Eu tenho mais uma pergunta,

Seria possivel gerar um PNG B&W?
(Eu criei um topico sobre isto, mas ainda não obtive resposta.)

Abraços,

E muito obrigado pelos exemplos :smiley:

<><[/quote]

tem como cria sim amigo…

segue um exemplo

try {
   FileOutputStream fos = new FileOutputStream(name);
} catch (IOException e) {
   e.printStackTrace();
}
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10, "Legenda", "0 horas");
dataset.addValue(20, "Legenda", "2 horas");
JFreeChart grafico = ChartFactory.createLineChart("", "Intervalo de Horas", "Acessos", dataset, PlotOrientation.VERTICAL, true, false, false);
ChartUtilities.writeChartAsPNG(fos, grafico, 500, 350);      //linha que gera uma imagem do tipo PNG e salva em disco
System.out.println("Imagem gerada com sucesso.");

o exemplo acima salva a imagem na pasta da classe que está sendo executada.

abraços.

Boa tarde pessoal,

A partir dos examplos e de uma ampla procurada na documentacao, eu criei alguns charts.

Mas estou tendo um pequeno problema em um gráfico de barras. As barras estão desalinhadas quanto ao eixo mostrado no gráfico e rótulos em baixo dele. Eu não alterei nada em relação a isso (apenas a rotação das rótulos) então quer dizer que isso veio por default. Isso é um bug?

tem como corrigir?

Abracos e obrigado toda ajuda :slight_smile:

<><

To precisando fazer a mesma coisa, so que para grafico de linhas e
Scatter.

tentei o que esta descrito aqui e nao funcionou, alguem teria um exemplo para grafico de linhas?
Não ta aparecendo os valores dentro da area dde plotagem do grafico de linha.