数据统计分析

多曲线图表分析实现

基本需求分析

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

道路卡口-车流量分析:

道路卡口-车牌地分析:

  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天的数据]

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

Java编程开发之数据图表分析模型的更多相关文章

  1. Java编程开发之浅析Java引用机制

    对于一个Java的对象而言,存储主要分为两种,一种是内存堆(Heap),内存堆是无序的,主要用来存放创建的Java对象:一种是内存栈(Stack),主要用来存放Java引用,然后在管理过程使用Java ...

  2. Java编程开发学习路线图(附所有免费课程+在线自测)

    转自  https://yq.aliyun.com/articles/134286?spm=5176.100239.0.0.1UfveS 摘要: 长期以来,Java一直占据TIOBE编程语言排行版第一 ...

  3. Java编程思想重点笔记(Java开发必看)

    Java编程思想重点笔记(Java开发必看)   Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...

  4. Java自学开发编程路线图(文中有资源福利)

    Java 语言入门 免费视频资源<毕向东Java基础教程>:http://yun.itheima.com/course/7.html JavaEE 学习大纲 所处阶段 主讲内容 技术要点 ...

  5. Java开发知识之Java编程基础

    Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Ja ...

  6. IT视频课程集(包含各类Oracle、DB2、Linux、Mysql、Nosql、Hadoop、BI、云计算、编程开发、网络、大数据、虚拟化

    马哥Linux培训视频课程:http://pan.baidu.com/s/1pJwk7dp Oracle.大数据系列课程:http://pan.baidu.com/s/1bnng3yZ 天善智能BI培 ...

  7. 【Java编程思想阅读笔记】Java数据存储位置

    Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new ...

  8. Java后端开发工程师是否该转大数据开发?

    撰写我对java后端开发工程师选择方向的想法,写给在java后端选择转方向的人 背景 看到一些java开发工程师,对java后端薪酬太悲观了.认为换去大数据领域就会高工资.觉得java后端没有前途.我 ...

  9. 大数据揭示的10个常见JAVA编程错误

    初学者最常犯的编程错误是什么呢?有可能他们总是混淆等值(==)与赋值(=),或者 & 和 &&:也有可能是他们在循环中使用错误的分隔符(for (int i = 0, i &l ...

随机推荐

  1. 2019牛客暑期多校训练营(第九场)B Quadratic equation (平方剩余)

    \((x+y)\equiv b\pmod p\) \((x\times y)\equiv c\pmod p\) 由第一个式子可知:\(x+y=b~or~x+y=b+p\) 先任选一个代入到第二个式子里 ...

  2. Codeforces Round #496 (Div. 3) E1. Median on Segments (Permutations Edition) (中位数,思维)

    题意:给你一个数组,求有多少子数组的中位数等于\(m\).(若元素个数为偶数,取中间靠左的为中位数). 题解:由中位数的定义我们知道:若数组中\(<m\)的数有\(x\)个,\(>m\)的 ...

  3. k8s二进制部署 - node节点安装

    创建kubelet配置 • set-cluster # 创建需要连接的集群信息,可以创建多个k8s集群信息 [root@hdss7-21 ~]# kubectl config set-cluster ...

  4. codeforces 5C

    C. Longest Regular Bracket Sequence time limit per test 2 seconds memory limit per test 256 megabyte ...

  5. Leetcode(106)-从中序与后序遍历序列构造二叉树

    根据一棵树的中序遍历与后序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7 ...

  6. C# 类 (5)

    Static 静态成员 创建一个类,实例化它,然后使用实例的各种方法或者属性 然而有时候我们不想实例化这个类,难道我们就没法用他里面的成员了吗?比如计算矩形的面积,就是长*宽,万年不变 当然可以,用s ...

  7. Git使用指南(上)

    1 Git简介 学习一门技术老师更加倾向于看官网的. 度娘看完了,官网看完了,大家还是很懵逼 学生成绩管理系统 登录模块   3.2 登录模块进一步完善    缺一个验证码的功能    3.3 登录模 ...

  8. translate.js

    http://www.openxrest.com/translatejs/index.html translate.js translate.js is a jQuery plugin to tran ...

  9. Building an IMAP Email Client with PHP

    1 Building an IMAP Email Client with PHP http://www.toptal.com/php/building-an-imap-email-client-wit ...

  10. pagehide event & sendBeacon

    pagehide event & sendBeacon 通过 API 测试 pagehide 是否触发了 pagehide 不支持正常的 fetch 请求发送 pagehide 仅支持 sen ...