数据统计分析

多曲线图表分析实现

基本需求分析

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

道路卡口-车流量分析:

道路卡口-车牌地分析:

  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. A - The Suspects (sars传染)

    题意:有m组,0为起点,有0的那一组全是嫌疑人,之后会不断传递到其它组去,问一共有多少人是嫌疑人. Severe acute respiratory syndrome (SARS), an atypi ...

  2. Codeforces Round #653 (Div. 3) E1. Reading Books (easy version) (贪心,模拟)

    题意:有\(n\)本书,A和B都至少要从喜欢的书里面读\(k\)本书,如果一本书两人都喜欢的话,那么他们就可以一起读来节省时间,问最少多长时间两人都能够读完\(k\)本书. 题解:我们可以分\(3\) ...

  3. Kubernets二进制安装(12)之部署Node节点服务的kube-Proxy

    kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件; kube-proxy负责为Pod创建代理服 ...

  4. history-back

    ;!function(pkg, undefined){ //此声明函数在xback.js文件里有,在app.js里必须再声明一次,不然监听返回事件失败 var STATE = 'x-back'; va ...

  5. Leetcode(104)-二叉树的最大深度

    给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例:给定二叉树 [3,9,20,null,null,15,7], ...

  6. Ubuntu 18.04 + pip3 install virtualenvwrapper 报错 ERROR: virtualenvwrapper could not find virtualenv in your path

    接上片... 问题 virtualenvwrapper装好后, 发现使用mkvirtualenv XX时, 又找不到virtualenv了... apt install python3-virtual ...

  7. vue watcher errors

    vue watcher errors Error in callback for watcher TypeError: Cannot set property of undefined" n ...

  8. Front End Frameworks Trending 2021

    Front End Frameworks Trending 2021 Front End Frameworks https://2019.stateofjs.com/front-end-framewo ...

  9. 如何用 js 实现一个 bind 函数

    如何用 js 实现一个 bind 函数 原理 实现方式 总结 refs https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...

  10. PIP & Python packages management

    PIP & Python packages management $ python3 --version # OR $ python3 -V # Python 3.7.3 $ pip --ve ...