![JAR search and dependency download from the Maven repository](/logo.png)
com.datastax.data.exploration.biz.stat.StackedBar Maven / Gradle / Ivy
The newest version!
package com.datastax.data.exploration.biz.stat;
import com.datastax.data.exploration.biz.datatable.DataRow;
import com.datastax.data.exploration.biz.datatable.DataTable;
import com.datastax.data.exploration.biz.datatable.column.NumberColumn;
import com.datastax.data.exploration.biz.datatable.column.math.Function;
import com.datastax.data.exploration.biz.datatable.column.math.MathStat;
import com.datastax.data.exploration.common.File2DataTable;
import com.datastax.data.exploration.dto.dataChart.stackedBar.StackedBarChartValue;
import com.datastax.data.exploration.util.Consts;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 堆叠图
*/
public class StackedBar {
/**
* 获取堆叠图的展示数据
*
* @param id 数据集id
* @param group 分组属性
* @param stack 堆叠属性
* @param val 取值属性
* @param func 聚合函数
* @return 返回的是堆叠图的展示数据
*/
public static List operator(String id, String group, String stack, String val, String func) {
DataTable table = File2DataTable.exactTable(id);
Map> mapSub = aggSubList(table, group, stack, val);
Function function = Function.getFunction(func);
List listStackBarValue = new ArrayList<>();
mapSub.forEach((k, v) -> {
StackedBarChartValue stackedBarValue = new StackedBarChartValue(k);
v.forEach((ksub, vsub) -> {
double value = 0;
if (vsub.typeIsNumber()) {
value = vsub.calculate(function);
} else if (Function.COUNT.equals(function)) {
value = vsub.calculate(function);
}
stackedBarValue.put(ksub, value);
});
listStackBarValue.add(stackedBarValue);
});
return listStackBarValue;
}
/**
* 获取分组的聚合属性
*
* @param table 数据表
* @param group 分组属性
* @param stack 堆叠属性
* @param val 取值属性
* @return 分组的聚合属性
*/
private static Map> aggSubList(DataTable table, String group, String stack, String val) {
Map> mapSub = new HashMap<>();
table.getRows().aggList(group).forEach((k, v) -> {
Map mapMath = new HashMap<>();
if (!Consts.NONE.equals(val)) {
Map
© 2015 - 2025 Weber Informatics LLC | Privacy Policy