Java编程开发之数据图表分析模型
数据统计分析
多曲线图表分析实现
基本需求分析
假设在怪兽出没的年岁,加上年关在即,需要统计分析各个道路卡口车流量出入统计,主要从车流量和车牌地角度出发。如图所示的业务需求:
道路卡口-车流量分析:
道路卡口-车牌地分析:
- 主要从车流量和车牌地2个纬度去分析与统计对应的流量数据
- 横向与纵向分析:X轴和Y轴各自有3条曲线[总数=进关数+出关数]
- 不同的时间纬度:按天统计[默认当天以及最近30天]和按月统计
- 不同道路卡口统计:不同卡口以及卡口组统计数据
业务需求分析
道路卡口-车流量分析
- 统计时间维度:按天统计[最近30天和当前某天的统计数据]和按月统计
- 横向对比分析:以采集时间为X轴,展示某一天的整点和半小时时刻的车辆进关与出关数量,以及车流量总数
- 纵向对比分析:以车流量为Y轴,展示某一天的整点和半小时时刻的车辆进关与出关数量,以及车流量总数
- 图表数据指标:车流量总数, 进关暑数量以及出关数量
道路卡口-车牌地分析
- 统计时间维度:按天统计[最近30天和当前某天的统计数据]和按月统计
- 横向对比分析:以车牌归属地为X轴,展示对应所属地区的相关车辆进关与出关数量,以及车流量总数
- 纵向对比分析:以车流量为Y轴,展示对应所属地区的相关车辆进关与出关数量,以及车流量总数
- 图表数据指标:车流量总数, 进关暑数量以及出关数量
- 数据排序:按照风险等级排序,对应的车牌流量分析
编码逻辑分析与实现
- 定义图表分析数据模型[Analysis Model]
// 定义数据模型
Map<String, Object> dataModel =Maps.newConcurrentMap();
// 定义X与Y轴数据模型
Map<String, Object> dataMap = Maps.newConcurrentMap();
// 车流量总数
dataModel.put("total", dataMap);
// 进关总数
dataModel.put("enter", dataMap);
// 出关总数
dataModel.put("leave", dataMap);
- 确定X轴与Y轴坐标系数据:
// 定义X与Y轴数据模型
Map<String, Object> dataMap = Maps.newConcurrentMap();
// 定义X轴数据模型
List<String> xList = Lists.newLinkedList();
// 定义Y轴数据模型
List<Object> yList = Lists.newLinkedList();
// 定义指标数据模型
BigDecimal count = BigDecimal.ZERO;
// .... ToDO 业务代码实现
dataMap.put("xAxis",xlist);
dataMap.put("yAxis",yList);
dataMap.put("count",count.intValue());
[⚠️注意事项]
1.上述模型属于复合型数据分析列表数据模型
2.简单数据模型分析,一般只用:
// 定义X与Y轴数据模型
Map<String, Object> dataMap = Maps.newConcurrentMap();
// 定义X轴数据模型
List<String> xList = Lists.newLinkedList();
// 定义Y轴数据模型
List<Object> yList = Lists.newLinkedList();
// .... ToDO 业务代码实现
dataMap.put("xAxis",xlist);
dataMap.put("yAxis",yList);
饼状图表分析实现
假设在怪兽出没的年岁,加上年关在即,需要统计分析各个道路卡口车流量出入的占比,主要从风险等级和风险区角度出发。如图所示的业务需求:
风险等级分析
- 主要从风险等级[高,中,低]统计分析数据的占比
- 统计时间维度:按照天统计[当天],按照周统计[最近七天]以及按照月统计[最近30天的数据]
风险区域比例
- 主要从风险区域维度统计车牌归属地分析数据的占比
- 统计时间维度:按照天统计[当天],按照周统计[最近七天]以及按照月统计[最近30天的数据]
版权声明:本文为博主原创文章,遵循相关版权协议,如若转载或者分享请附上原文出处链接和链接来源。