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天的数据]
版权声明:本文为博主原创文章,遵循相关版权协议,如若转载或者分享请附上原文出处链接和链接来源。
Java编程开发之数据图表分析模型的更多相关文章
- Java编程开发之浅析Java引用机制
对于一个Java的对象而言,存储主要分为两种,一种是内存堆(Heap),内存堆是无序的,主要用来存放创建的Java对象:一种是内存栈(Stack),主要用来存放Java引用,然后在管理过程使用Java ...
- Java编程开发学习路线图(附所有免费课程+在线自测)
转自 https://yq.aliyun.com/articles/134286?spm=5176.100239.0.0.1UfveS 摘要: 长期以来,Java一直占据TIOBE编程语言排行版第一 ...
- Java编程思想重点笔记(Java开发必看)
Java编程思想重点笔记(Java开发必看) Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...
- Java自学开发编程路线图(文中有资源福利)
Java 语言入门 免费视频资源<毕向东Java基础教程>:http://yun.itheima.com/course/7.html JavaEE 学习大纲 所处阶段 主讲内容 技术要点 ...
- Java开发知识之Java编程基础
Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Ja ...
- IT视频课程集(包含各类Oracle、DB2、Linux、Mysql、Nosql、Hadoop、BI、云计算、编程开发、网络、大数据、虚拟化
马哥Linux培训视频课程:http://pan.baidu.com/s/1pJwk7dp Oracle.大数据系列课程:http://pan.baidu.com/s/1bnng3yZ 天善智能BI培 ...
- 【Java编程思想阅读笔记】Java数据存储位置
Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new ...
- Java后端开发工程师是否该转大数据开发?
撰写我对java后端开发工程师选择方向的想法,写给在java后端选择转方向的人 背景 看到一些java开发工程师,对java后端薪酬太悲观了.认为换去大数据领域就会高工资.觉得java后端没有前途.我 ...
- 大数据揭示的10个常见JAVA编程错误
初学者最常犯的编程错误是什么呢?有可能他们总是混淆等值(==)与赋值(=),或者 & 和 &&:也有可能是他们在循环中使用错误的分隔符(for (int i = 0, i &l ...
随机推荐
- 2019牛客暑期多校训练营(第二场)E.MAZE(线段树+dp)
题意:给你一个n*m的矩阵 你只能向左向右相下走 有两种操作 q次询问 一种是把一个单位翻转(即可走变为不可走 不可走变为可走) 另一种是询问从(1,x) 走到 (n,y)有多少种方案 思路:题目n为 ...
- Codeforces Round #656 (Div. 3) A. Three Pairwise Maximums
题目链接:https://codeforces.com/contest/1385/problem/A 题意 给出三个正整数 $x,y,z$,找出三个正整数 $a,b,c$ 使得 $x = max(a, ...
- 一篇文章搞懂G1收集器
一.何为G1收集器 The Garbage-First (G1) garbage collector is a server-style garbage collector, targeted for ...
- CF1415-C. Bouncing Ball
CF1415-C. Bouncing Ball 题意: 在\(x\)轴上有\(n\)个点(从\(1\)到\(n\)),每个点都有一个值\(0\)或\(1\),\(0\)代表这个点不能走,\(1\)代表 ...
- httprunner(8)用例调用-RunTestCase
前言 一般我们写接口自动化的时候,遇到复杂的逻辑,都会调用API方法来满足前置条件,Pytest的特性是无法用例之间相互调动的,我们一般只调用自己封装的API方法. 而httprunner支持用例之间 ...
- Spring Cloud实战: 基于Spring Cloud Gateway + vue-element-admin 实现的RBAC权限管理系统,实现网关对RESTful接口方法权限和自定义Vue指令对按钮权限的细粒度控制
一. 前言 信我的哈,明天过年. 这应该是农历年前的关于开源项目 的最后一篇文章了. 有来商城 是基于 Spring Cloud OAuth2 + Spring Cloud Gateway + JWT ...
- Leetcode 30 串联所有单词的子串 滑动窗口+map
见注释.滑动窗口还是好用. class Solution { public: vector<int> findSubstring(string s, vector<string> ...
- 鸟哥的linux私房菜——第七章学习(Linux 磁盘与文件系统管理)
1.1).文件系统特征 我们称呼一个可被挂载的数据为一个文件系统而不是一个分区! 文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data ...
- C# 类 (11) - Const
Const variable 变量 ,值可变的constant 常量,不可变,C# 里关键字是const当我们定义一个常量的时候,需要立马赋值,以后不能再改这个量了我们可以把常量定义在 method ...
- ysoserial Commons Collections2反序列化研究
Apache Commons Collections2反序列化研究 环境准备 JDK 1.7 Commons Collections 4.0 javassit 前置知识 PriorityQueue() ...