Olá pessoal tenho um gráfico com barras horizontais e gostaria de colocar os valores dentro das próprias barras. No código abaixo os valores estão do lado de fora do gráfico.
public static BufferedImage createChartBarrasTotalizaPF(TotalizaFinanceiro totalizaFinanceiro) {
BufferedImage buf = null;
final DefaultCategoryDataset result = new DefaultCategoryDataset();
String label1 = "PF Contrat";
String label2 = "PF Prev ASC";
String label3 = "PF Contrat OS";
String label4 = "PF Pagos";
String label5 = "PF Ñ Contratado";
float naoPagos = totalizaFinanceiro.getTotalPontoFuncaoContrato() - totalizaFinanceiro.getTotalPontosFuncaoContratadoOS() ;
result.addValue(totalizaFinanceiro.getTotalPontoFuncaoContrato(), label1, String.valueOf((int) totalizaFinanceiro.getTotalPontoFuncaoContrato()));
result.addValue(totalizaFinanceiro.getTotalPontosFuncaoPrevistoASC(), label2, String.valueOf((int) totalizaFinanceiro.getTotalPontosFuncaoPrevistoASC()));
result.addValue(totalizaFinanceiro.getTotalPontosFuncaoContratadoOS(), label3, String.valueOf((int) totalizaFinanceiro.getTotalPontosFuncaoContratadoOS()));
result.addValue(totalizaFinanceiro.getTotalPontosFuncaoPagos(), label4, String.valueOf((int) totalizaFinanceiro.getTotalPontosFuncaoPagos()));
result.addValue(naoPagos, label5, String.valueOf((int) naoPagos));
JFreeChart chart = ChartFactory.createBarChart3D("Pontos de Função", "", "Valores",
result, PlotOrientation.HORIZONTAL, true, true, false);
//Teste da grade
CategoryPlot cp = chart.getCategoryPlot();
NumberAxis rangeAxis = (NumberAxis) cp.getRangeAxis();
rangeAxis.setUpperMargin(0.15);
cp.setBackgroundPaint(Color.lightGray);
cp.setDomainGridlinePaint(Color.black);
cp.setDomainGridlinesVisible(true);
cp.setRangeGridlinePaint(Color.white);
int colorCode = 0x00FFFFFF;
chart.setBackgroundPaint(new Color(colorCode));
chart.getTitle().setPaint(Color.black);
CategoryPlot p = chart.getCategoryPlot();
p.setRangeGridlinePaint(Color.black);
//Aqui é codigo antigo
chart.setBorderVisible(true);
chart.setBorderPaint(Color.black);
buf = chart.createBufferedImage(400, 250);
return buf;
}
Agradeço desde já as respostas.