Java编程开发之数据图表分析模型

556 阅读3分钟

6P6qIJ.jpg

数据统计分析

多曲线图表分析实现

基本需求分析

假设在怪兽出没的年岁,加上年关在即,需要统计分析各个道路卡口车流量出入统计,主要从车流量和车牌地角度出发。如图所示的业务需求:

道路卡口-车流量分析:

道路卡口-车流量分析

道路卡口-车牌地分析: 道路卡口-车牌地分析

  1. 主要从车流量和车牌地2个纬度去分析与统计对应的流量数据
  2. 横向与纵向分析:X轴和Y轴各自有3条曲线[总数=进关数+出关数]
  3. 不同的时间纬度:按天统计[默认当天以及最近30天]和按月统计
  4. 不同道路卡口统计:不同卡口以及卡口组统计数据

业务需求分析

道路卡口-车流量分析

道路卡口-车流量分析

  1. 统计时间维度:按天统计[最近30天和当前某天的统计数据]和按月统计
  2. 横向对比分析:以采集时间为X轴,展示某一天的整点和半小时时刻的车辆进关与出关数量,以及车流量总数
  3. 纵向对比分析:以车流量为Y轴,展示某一天的整点和半小时时刻的车辆进关与出关数量,以及车流量总数
  4. 图表数据指标:车流量总数, 进关暑数量以及出关数量
道路卡口-车牌地分析

道路卡口-车牌地分析

  1. 统计时间维度:按天统计[最近30天和当前某天的统计数据]和按月统计
  2. 横向对比分析:以车牌归属地为X轴,展示对应所属地区的相关车辆进关与出关数量,以及车流量总数
  3. 纵向对比分析:以车流量为Y轴,展示对应所属地区的相关车辆进关与出关数量,以及车流量总数
  4. 图表数据指标:车流量总数, 进关暑数量以及出关数量
  5. 数据排序:按照风险等级排序,对应的车牌流量分析

编码逻辑分析与实现

  1. 定义图表分析数据模型[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);
  1. 确定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);

饼状图表分析实现

假设在怪兽出没的年岁,加上年关在即,需要统计分析各个道路卡口车流量出入的占比,主要从风险等级和风险区角度出发。如图所示的业务需求:

风险等级分析 风险等级分析

  1. 主要从风险等级[高,中,低]统计分析数据的占比
  2. 统计时间维度:按照天统计[当天],按照周统计[最近七天]以及按照月统计[最近30天的数据]

风险区域比例 风险区域比例

  1. 主要从风险区域维度统计车牌归属地分析数据的占比
  2. 统计时间维度:按照天统计[当天],按照周统计[最近七天]以及按照月统计[最近30天的数据]

版权声明:本文为博主原创文章,遵循相关版权协议,如若转载或者分享请附上原文出处链接和链接来源。