1
resposta

Charts Bar PrimeFaces divir em grupo

Boa noite!

Como dividir o grafico em grupos ? por exempo:

item: "Axxxxx" tem os defeitos : Batida = 2, Mancha=3, Falha na pintura=4, Chupagem=2 Item: "Bxxxxx" tem os defeitos: Deformacao=3, Batida=5, Chupagem=3

                       |                                |
defeitos     |   defeitos           |

Item Axxxx | Item Bxxxxx

public BarChartModel getTaxaAprovacaoDiariaModel(List<TaxaAprovacaoDiaria> listaTaxa){

        BarChartModel model = new BarChartModel();
        model.setAnimate(true);

        ChartSeries taxaAprovacaoSerie = new ChartSeries();


        for (TaxaAprovacaoDiaria taxaAprocacaoDiaria : listaTaxa) {


            taxaAprovacaoSerie.set(this.formato.format(taxaAprocacaoDiaria.getDataTaxa()), taxaAprocacaoDiaria.getTaxAprov());        

        }

        model.addSeries(taxaAprovacaoSerie);
        model.setBarWidth(50);


        model.setShowPointLabels(true);
        model.setTitle("Taxa Aprovação Diária");

        Axis xAxis = model.getAxis(AxisType.X);
        //xAxis.setLabel("Defeito Dia");
        xAxis.setMin(0);
        xAxis.setMax(100);
        xAxis.setTickAngle(15);

        Axis yAxis = model.getAxis(AxisType.Y);

        yAxis.setTickFormat("%' .2f");



        return model;

    }
}
1 resposta

Olá, Jorge!

Para dividir o gráfico em grupos, você pode utilizar a classe ChartSeries do PrimeFaces. Nesse caso, você pode criar uma série para cada item e adicionar os defeitos como valores dessa série.

Por exemplo, considerando o código que você compartilhou, você pode modificar o método getTaxaAprovacaoDiariaModel da seguinte forma:

public BarChartModel getTaxaAprovacaoDiariaModel(List<TaxaAprovacaoDiaria> listaTaxa){
    BarChartModel model = new BarChartModel();
    model.setAnimate(true);

    for (TaxaAprovacaoDiaria taxaAprocacaoDiaria : listaTaxa) {
        ChartSeries itemSerie = new ChartSeries();
        itemSerie.setLabel(taxaAprocacaoDiaria.getItem());

        // Adicione os defeitos como valores da série
        itemSerie.set("Batida", taxaAprocacaoDiaria.getBatida());
        itemSerie.set("Mancha", taxaAprocacaoDiaria.getMancha());
        itemSerie.set("Falha na pintura", taxaAprocacaoDiaria.getFalhaNaPintura());
        itemSerie.set("Chupagem", taxaAprocacaoDiaria.getChupagem());

        model.addSeries(itemSerie);
    }

    model.setBarWidth(50);
    model.setShowPointLabels(true);
    model.setTitle("Taxa Aprovação Diária");

    Axis xAxis = model.getAxis(AxisType.X);
    xAxis.setMin(0);
    xAxis.setMax(100);
    xAxis.setTickAngle(15);

    Axis yAxis = model.getAxis(AxisType.Y);
    yAxis.setTickFormat("%' .2f");

    return model;
}

Dessa forma, cada item será representado como uma série no gráfico, e os defeitos serão exibidos como valores dentro de cada série.

Espero ter ajudado e bons estudos!