javafx StackedBarChart累计值

时间:2017-01-05 22:24:38

标签: javafx cumulative-sum stacked-chart

有谁知道如何获取类别轴上每个X值的堆积条形图的累积值?有没有办法呢?

我不可能手动执行此操作,因为每个数据系列都不会覆盖所有X值,并且大约有400个X值。

谢谢!

1 个答案:

答案 0 :(得分:0)

假设你有

StackedBarChart<String, Number> chart ;

您可以将每个x值的累计总数计算为

Map<String, Number> cumulativeTotal = new HashMap<>();
for (Series<String, Number> series : chart.getData()) {
    for (XYChart.Data<String, Number> data : series.getData()) {
        cumulativeTotal.merge(data.getXValue(), data.getYValue(), (y1, y2) -> y1.doubleValue() + y2.doubleValue());
    }
}

或使用流:

Map<String, Number> cumulativeTotal = chart.getData().stream()
        .flatMap(series -> series.getData().stream())
        .collect(Collectors.toMap(Data::getXValue, Data::getYValue, (y1, y2) -> y1.doubleValue() + y2.doubleValue()));