1

棒グラフ コンポーネントの奇妙な動作が発生しています。2 つの chartSeries を作成して、CartesianChartModel に追加しようとしています。チャート シリーズは、月と各月の数値で構成されます。しかし、何らかの理由で、2 番目のループの値が間違った位置に置かれています。

        CartesianChartModel categoryModel = new CartesianChartModel(); 
        ChartSeries problems = new ChartSeries(); 
        ChartSeries incidents = new ChartSeries(); 

        problems.setLabel("PM");
        incidents.setLabel("IM");
        List<MonthCountWrapper> monthCountList = //get data
        List<MonthCountWrapper> monthCountListInc = //get data

        for (MonthCountWrapper mcw : monthCountListInc) {
                System.out.println("Month :  " + mcw.getMonth());
                incidents.set(mcw.getMonth(), mcw.getCount());
        }
                categoryModel.addSeries(incidents);

        for (MonthCountWrapper mcw : monthCountList) {
                System.out.println("Month :  " + mcw.getMonth());
                problems.set(mcw.getMonth(), mcw.getCount());
        }
                categoryModel.addSeries(problems);

       view.setCategoryModel(categoryModel);

XHTML:

    <p:barChart id="basic" value="#{statisticLateView.categoryModel}"
            legendPosition="ne" diameter="600"
            rendered="#{statisticLateView.categoryModel.series.size() != 0 and statisticLateView.showBarChart}"
            min="0" max="150" showDataTip="true" />

最初の sysout はこれを生成します:

13:20:08,345 INFO  [STDOUT] Month :  Januar
13:20:08,345 INFO  [STDOUT] Month :  Februar
13:20:08,345 INFO  [STDOUT] Month :  Marts
13:20:08,345 INFO  [STDOUT] Month :  April
13:20:08,345 INFO  [STDOUT] Month :  Maj
13:20:08,345 INFO  [STDOUT] Month :  Juni
13:20:08,345 INFO  [STDOUT] Month :  Juli
13:20:08,345 INFO  [STDOUT] Month :  August
13:20:08,345 INFO  [STDOUT] Month :  September
13:20:08,345 INFO  [STDOUT] Month :  Oktober

そして2つ目はこれ

13:20:08,345 INFO  [STDOUT] Month :  September
13:20:08,345 INFO  [STDOUT] Month :  Oktober

しかし、私のグラフは次のようになっています。 ここに画像の説明を入力

10 月と 9 月のビーイングの値が最初の 2 列に表示される理由と、この問題の解決方法を教えてください。

PS。for ループの順序を変更すると、10 月と 9 月の統計のみがグラフに表示され、他の月はスキップされます。

4

1 に答える 1