javafx StackedBarChart совокупное значение

Кто-нибудь знает, как получить совокупное значение столбчатой ​​диаграммы с накоплением для каждого значения X на оси категории? Есть ли способ для этого?

Я не могу сделать это вручную, потому что каждый ряд данных не охватывает все значения X и существует около 400 значений X.

Спасибо!

1 ответ

Если у вас есть

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()));
Другие вопросы по тегам