Boa tarde!
Tenho um gráfico de barras no ireport, que exibe os valores tanto acima, quanto abaixo de cada barra.
Porém quando eu solicito a exibição de muitos valores, que resultam em muitas barras, alguns valores de barras que estão em alturas próximas, se sobrepoem.
Para isso, pensei em girar esses labels em 45º em meu chart customizer, mas não achei nada na internet pra esse label em específico, apenas para o label principal:
final CategoryPlot plot = chart.getCategoryPlot();
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setVerticalTickLabels(true); // Não serve!!
Alguém consegue me dar uma luz de como fazer isso?
Minha classe customizer
obs: desculpe se minha alteração de cores for gambiarra, hoje mesmo eu tava procurando forma melhor de implementar isso
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package Graficos;
import java.awt.Color;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartCustomizer;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.BarRenderer;
/**
*
-
@author bruno
/
public class PrevisaoBarrasCustomizer implements JRChartCustomizer{
/ Converte uma cor RGB em HSB e armazena em um vetor float[3] */
float[] hsbBar1 = Color.RGBtoHSB(153, 0, 0, null); // Vermelho escuro
float[] hsbBar2 = Color.RGBtoHSB(102, 153, 255, null); // Azul claro fosco@Override
public void customize(JFreeChart chart, JRChart jasperChart) {
/* Obtem o renderer do gráfico de barras */
BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();/* Define as cores das barras 0 e 1 */ renderer.setSeriesPaint(0, Color.getHSBColor(hsbBar1[0], hsbBar1[1], hsbBar1[2])); renderer.setSeriesPaint(1, Color.getHSBColor(hsbBar2[0], hsbBar2[1], hsbBar2[2])); /* * Altera a margem superior e inferior para 15% (0.15), fazendo com que * os labels não sejam cortados como na configuração padrão */ final CategoryPlot plot = chart.getCategoryPlot(); final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setUpperMargin(0.15); rangeAxis.setLowerMargin(0.15);
}
}[/code]