JFreeChart

2 respostas
igor_jua

Galera estou gerando um gráfico de barras no JfreeChart e minhas colunas estão sendo geradas muito finas.
Pesquisando aqui no guj vi um método de faze-las aumentar, porém no meu código nada acontece.
Ou seja, quando eu torno a executar as barras permanecem do mesmo tamanho.

DefaultCategoryDataset dcd = new DefaultCategoryDataset();
        dcd.setValue(v1, v1+"%", "Associados");
        dcd.setValue(v2, v2+"%", "Carregados");
        dcd.setValue(v3, v3+"%", "Gerados");
        dcd.setValue(v4, v4+"%", "Em P.Descarga");
        dcd.setValue(v5, v5+"%", "Descarregado");
        dcd.setValue(v6, v6+"%", "Rot.Proc.Incon.");
        dcd.setValue(v7, v7+"%", "Rot.Val.Final.");

        JFreeChart chart = ChartFactory.createBarChart("SITUAÇÃO ATUAL DE TRANSMISSÃO DO(S) LOTES " + lotes, "", "", dcd, PlotOrientation.VERTICAL, true, true, true);
CategoryPlot plot = chart.getCategoryPlot(); //Pega o plot para pintar as barras
        BarRenderer renderer = (BarRenderer) plot.getRenderer();
        
        renderer.setMaximumBarWidth(0.15);// Este é o método que aumenta a largura. Independente do valor que eu passe as barras permanecem sempre da mesma largura
        renderer.setDrawBarOutline(true); //Desenha a linha externa nas barras (bordas das barras)
        renderer.setSeriesPaint(0, Color.BLUE); //Pinta no degradê q eu quero.
        renderer.setSeriesPaint(1,
                Color.GRAY); //Pinta no degradê q eu quero.
        renderer.setSeriesPaint(2,
                Color.GREEN); //Pinta no degradê q eu quero.
        renderer.setSeriesPaint(3,
                Color.RED); //Pinta no degradê q eu quero.
        renderer.setSeriesPaint(4,
                Color.CYAN); //Pinta no degradê q eu quero.
        renderer.setSeriesPaint(5,
                Color.YELLOW); //Pinta no degradê q eu quero.
        renderer.setSeriesPaint(6,
                Color.ORANGE); //Pinta no degradê q eu quero.
        renderer.setSeriesPaint(7,
                Color.lightGray); //Pinta no degradê q eu quero.
        final CategoryAxis domainAxis = plot.getDomainAxis();
        domainAxis.setCategoryLabelPositions(
                CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
        
      
        BufferedImage image = chart.createBufferedImage(250, 500);
        return image;

2 Respostas

igor_jua

Nenhuma luz?

ArtesaoDeSoftware

Só pelo nome do método (setMaximumBarWidth) dá para concluir que não é ele que aumenta a largura da barra. Tente consultar a documentação oficial.

Criado 23 de agosto de 2010
Ultima resposta 24 de ago. de 2010
Respostas 2
Participantes 2