2017-01-05 12 views
0

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

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

Спасибо!

ответ

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())); 
+0

Большое спасибо! Я не видел ваших ответов до сих пор. Спасибо за введение новой концепции: Карта. –