* 百度Echarts统计图表
* @author cuichen
* @version 1.0
* @since 1.0
* @date 2015-11-16
*/
@Controller
@RequestMapping(value = "ks/chart")
public class KSChartController extends BaseController {
@RequestMapping(value = "/line")
@ResponseBody
public Object line(HttpSession session,
HttpServletResponse response, HttpServletRequest request,
ModelMap modelMap, String sqlx, String sqly, String sqlz) throws Exception {
sqlx= HtmlUtils.htmlUnescape(sqlx);
sqly= HtmlUtils.htmlUnescape(sqly);
sqlz= HtmlUtils.htmlUnescape(sqlz);
List<Map<Object, Object>> xList = DBUtils.executeQuery(sqlx, false);
List<Map<Object, Object>> yList = DBUtils.executeQuery(sqly, false);
List<Map<Object, Object>> zList = DBUtils.executeQuery(sqlz, false);
Map<String, Object> option = new HashMap<String, Object>();
Map<String, Object> xAxis = new HashMap<String, Object>();
List<String> data = new ArrayList<String>();
for(int i=0; i<xList.size(); i++) {
data.add(xList.get(i).get("VALUE").toString());
}
xAxis.put("data", data);
option.put("xAxis", xAxis);
Map<String, Object> legend = new HashMap<String, Object>();
data = new ArrayList<String>();
for(int i=0; i<zList.size(); i++) {
data.add(zList.get(i).get("NAME").toString());
}
legend.put("data", data);
option.put("legend", legend);
List<Map<Object, Object>> series = new ArrayList<Map<Object,Object>>();
for(int i=0; i<zList.size(); i++) {
Map<Object, Object> zMap = zList.get(i);
Map<Object, Object> seriesMap = new HashMap<Object, Object>();
String zKey = zMap.get("KEY").toString();
seriesMap.put("zkey", zKey);
seriesMap.put("name", zMap.get("NAME"));
seriesMap.put("type", "line");
List<Double> yData = new ArrayList<Double>();
for(int j=0; j<xList.size(); j++) {
Map<Object, Object> xMap = xList.get(j);
String xkey = xMap.get("KEY").toString();
boolean isAdd = false;
for(int k=0; k<yList.size(); k++) {
Map<Object, Object> yMap = yList.get(k);
if(yMap.get("ZKEY") != null && yMap.get("XKEY") != null && zKey.equals(yMap.get("ZKEY").toString()) && xkey.equals(yMap.get("XKEY").toString())) {
yData.add(Double.parseDouble(yMap.get("VALUE").toString()));
isAdd = true;
break;
}
}
if(!isAdd) {
yData.add(0D);
}
}
seriesMap.put("data", yData);
series.add(seriesMap);
}
option.put("series", series);
return option;
}
@RequestMapping(value = "/bar")
@ResponseBody
public Object bar(HttpSession session,
HttpServletResponse response, HttpServletRequest request,
ModelMap modelMap, String sqlx, String sqly, String sqlz) throws Exception {
sqlx= HtmlUtils.htmlUnescape(sqlx);
sqly= HtmlUtils.htmlUnescape(sqly);
sqlz= HtmlUtils.htmlUnescape(sqlz);
List<Map<Object, Object>> xList = DBUtils.executeQuery(sqlx, false);
List<Map<Object, Object>> yList = DBUtils.executeQuery(sqly, false);
List<Map<Object, Object>> zList = DBUtils.executeQuery(sqlz, false);
Map<String, Object> option = new HashMap<String, Object>();
Map<String, Object> xAxis = new HashMap<String, Object>();
List<String> data = new ArrayList<String>();
for(int i=0; i<xList.size(); i++) {
data.add(xList.get(i).get("VALUE").toString());
}
xAxis.put("data", data);
option.put("xAxis", xAxis);
Map<String, Object> legend = new HashMap<String, Object>();
data = new ArrayList<String>();
for(int i=0; i<zList.size(); i++) {
data.add(zList.get(i).get("NAME").toString());
}
legend.put("data", data);
option.put("legend", legend);
List<Map<Object, Object>> series = new ArrayList<Map<Object,Object>>();
for(int i=0; i<zList.size(); i++) {
Map<Object, Object> zMap = zList.get(i);
Map<Object, Object> seriesMap = new HashMap<Object, Object>();
String zKey = zMap.get("KEY").toString();
seriesMap.put("name", zMap.get("NAME"));
seriesMap.put("type", "bar");
if(zMap.get("STACK")!=null && StringUtils.isNoneBlank(zMap.get("STACK").toString())) {
seriesMap.put("stack", zMap.get("STACK").toString());
}
List<Double> yData = new ArrayList<Double>();
for(int j=0; j<xList.size(); j++) {
Map<Object, Object> xMap = xList.get(j);
String xkey = xMap.get("KEY").toString();
boolean isAdd = false;
for(int k=0; k<yList.size(); k++) {
Map<Object, Object> yMap = yList.get(k);
if(yMap.get("ZKEY") != null && yMap.get("XKEY") != null && zKey.equals(yMap.get("ZKEY").toString()) && xkey.equals(yMap.get("XKEY").toString())) {
yData.add(Double.parseDouble(yMap.get("VALUE").toString()));
isAdd = true;
break;
}
}
if(!isAdd) {
yData.add(0D);
}
}
seriesMap.put("data", yData);
series.add(seriesMap);
}
option.put("series", series);
return option;
}
@RequestMapping(value = "/pie")
@ResponseBody
public Object pie(HttpSession session,
HttpServletResponse response, HttpServletRequest request,
ModelMap modelMap, String sqlx, String sqly, String sqlz) throws Exception {
sqlx= HtmlUtils.htmlUnescape(sqlx);
sqly= HtmlUtils.htmlUnescape(sqly);
sqlz= HtmlUtils.htmlUnescape(sqlz);
List<Map<Object, Object>> xList = DBUtils.executeQuery(sqlx, false);
List<Map<Object, Object>> yList = DBUtils.executeQuery(sqly, false);
List<Map<Object, Object>> zList = DBUtils.executeQuery(sqlz, false);
Map<String, Object> option = new HashMap<String, Object>();
Map<String, Object> legend = new HashMap<String, Object>();
List<String> data = new ArrayList<String>();
for(int i=0; i<xList.size(); i++) {
data.add(xList.get(i).get("VALUE").toString());
}
legend.put("data", data);
option.put("legend", legend);
List<Map<Object, Object>> series = new ArrayList<Map<Object,Object>>();
for(int i=0; i<zList.size(); i++) {
Map<Object, Object> zMap = zList.get(i);
Map<Object, Object> seriesMap = new HashMap<Object, Object>();
List<Map<Object, Object>> seriesData = new ArrayList<Map<Object,Object>>();
String zKey = zMap.get("KEY").toString();
seriesMap.put("name", zMap.get("NAME"));
seriesMap.put("type", "pie");
seriesMap.put("zkey", zKey);
for(int j=0; j<xList.size(); j++) {
Map<Object, Object> xMap = xList.get(j);
String xkey = xMap.get("KEY").toString();
String xvalue = xList.get(j).get("VALUE").toString();
boolean isAdd = false;
for(int k=0; k<yList.size(); k++) {
Map<Object, Object> yMap = yList.get(k);
if(yMap.get("ZKEY") != null && yMap.get("XKEY") != null && zKey.equals(yMap.get("ZKEY").toString()) && xkey.equals(yMap.get("XKEY").toString())) {
Map<Object, Object> sd = new HashMap<Object, Object>();
sd.put("value", Double.parseDouble(yMap.get("VALUE").toString()));
sd.put("name", xvalue);
seriesData.add(sd);
isAdd = true;
break;
}
}
if(!isAdd) {
Map<Object, Object> sd = new HashMap<Object, Object>();
sd.put("value", 0D);
sd.put("name", xvalue);
seriesData.add(sd);
}
}
seriesMap.put("data", seriesData);
series.add(seriesMap);
}
option.put("series", series);
return option;
}
}

mark 百度Echarts统计图表的更多相关文章

  1. 完整版ajax+百度echarts实现统计图表demo并随着窗口大小改变而自适应

    1.前言 百度Echarts会常用到我们的项目中做统计,api很详细,demo也非常之多,我们常用的是应有尽有了,做一些小项目的时候,百度echarts的demo已足够用了.今天呢.主要是跟小白讲一下 ...

  2. 百度echarts可以做什么

    百度echarts可以做什么 一.总结 一句话总结:可视化做的很好,各种图都有.而且支持动态数据. 二.百度eCharts体验 前言 从昨天开始给项目里添加一些图表对比功能,上一个项目里使用的是Hig ...

  3. WPF仿百度Echarts人口迁移图

    GitHub地址:https://github.com/ptddqr/wpf-echarts-map/tree/master 关于大名鼎鼎的百度Echarts我就不多说了 不了解的朋友直接看官方的例子 ...

  4. C#+JQuery+.Ashx+百度Echarts实现全国省市地图和饼状图动态数据图形报表的统计

    在目前的一个项目中,需要用到报表表现数据,这些数据有多个维度,需要同时表现出来,同时可能会有大量数据呈现的需求,经过几轮挑选,最终选择了百度的echarts作为报表基础类库.echarts功能强大,界 ...

  5. 百度echarts使用--y轴label数字太长难以全部显示

    问题: 今天遇到个小问题,我们系统前端呈现使用了百度echarts.在绘制折线图的时候,因为数字过大,导致显示出现了问题. 解决方案: 左边y轴的值默认是根据我们填充进去的值来默认分割的,因为原始值就 ...

  6. 百度ECharts数据绑定诀窍

    百度Echarts的功能还是蛮好用的.. 不能说多好但是也不次.. 下边就分享一些数据绑定经验..对在处理过程中的思路有一些帮助... 报表里用的最多的可以说是 饼状图和柱形图.. 饼状图里当然是包括 ...

  7. 使用百度Echarts制作力导向图

    最近项目需求制作一个力导向图来展示企业的画像等关系信息,故想到了百度Echarts的关系图,在这使用Echarts3.0版本来实现.先上效果图,再看代吗 哎,本来想整个工程扔出来,发现好像没地方上传附 ...

  8. 网页图表类框架(插件)——百度eCharts和Highcharts

    ECharts, 缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库, 可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9 /10 ...

  9. 微信小说分销系统设计之使用百度Echarts地图统计功能统计微信粉丝地域分布情况

    /** 转载请保留博客园原地址以及版权声明,请勿恶意修改,本博客中的内容均属于技术交流,请勿用于商业用途,谢谢配合 *  作者:杨浩瑞  QQ:1420213383  独立博客:http://www. ...

随机推荐

  1. GBDT(Gradient Boost Decision Tree)

    原文:http://blog.csdn.net/aspirinvagrant/article/details/48415435 GBDT,全称Gradient Boosting Decision Tr ...

  2. 【Javascript Demo】根据Email地址跳转到相应的邮箱登录页面

    我的初步想法是通过指定的邮箱地址自动查找到对应的邮箱登录页面,但是用数据库.js什么的都有局限性,因为各种各样的邮箱太多了,不能都包含的到,网上找了半天都没有找到满意的答案,自己又想不出方法,只能暂时 ...

  3. 使用Fiddler抓包调试https下的页面

    众所周知https技术诞生以来,一个很重要的作用就是加密通信内容.所以在项目团队将业务站点实施完https改造以后,原先使用fiddler进行抓包的美好生活到头了.其实fiddler本身是支持对于ht ...

  4. MySQL优化小案例:连接数

    错误代码:MySQL: ERROR 1040: Too many connections 经常会遇到这个错误,要么是业务增长,正常的访问量增多,要么是自己的max_connections设置的过小了 ...

  5. 1z0-052 q209_5

    5: Your database is open and the LISTENER listener is running. The new DBA of the system stops the l ...

  6. $nextTick 宏任务 微任务 macrotasks microtasks

    1.nextTick调用方法 首先看nextTick的调用方法: https://cn.vuejs.org/v2/api/#Vue-nextTick // 修改数据 vm.msg = 'Hello' ...

  7. How to hide the create button dynamical tree view in openerp ?

    <tree create="false" edit="false" > <tree attrs="{'create':[(" ...

  8. plsql 快捷键配置

      plsql 快捷键配置 CreateTime--2018年4月23日17:41:45 Author:Marydon 功能快捷键 预设条目 中文解释 快捷键配置Edit/Undo 撤销 ctrl+z ...

  9. SoapUI 测试接口演示

      SoapUI 测试接口演示 CreateTime--2018年4月2日15:54:05 Author:Marydon 以webservice为例 1.安装:  SoapUI-x64-5.4.0-E ...

  10. 【docker】挂载web应用

    现在将webapps目录挂载在宿主机目录,方便运维 docker run -p 8090:8080 --name app -v /usr/app:/usr/local/tomcat/webapps d ...