导入相应的包需要的文件;

aaarticlea/png;base64,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" alt="" />

前台调用:

<script type="text/javascript">
// 路径配置
require.config({
paths: {
echarts: 'ec/jsp/profileOfProduct/echarts' //路径写到echarts这个总包即可
}
});
// 使用
require(
[
'echarts',
'echarts/chart/line' // 使用条形图就加载bar模块,按需加载,即上图中chart包先的js
],
function (ec) { var myChart = ec.init(document.getElementById('main')); //图表的div1(主意div必须设置高度,否则图表不能显示)
//ajax调用卸船量数据
$.ajax({
url:"${pageContext.request.contextPath}/ec/jsp/profileOfProduct/query.jsp",
type: "GET",
data:{"action":"queryPortLoad"},
dataType: "text",
async:true,
success: function (data) {
if (data) {
var arr = eval("("+data+")");//将前台的json形式的字符串转换为json数据
var option = arr.option;
myChart.clear();
myChart.setOption(option);
myChart.refresh();
}
},
});
}
);
</script>

后台组织数据

  数据格式参见echarts地址:http://echarts.baidu.com/echarts2/doc/example.html

  我的做法是根据前台不同图表的数据格式写成javaBean,按需要的格式设置Option的格式

  通过JsonObject类转换成json字符串返回前台代码如下:

public void queryOption(HttpServletRequest request,HttpServletResponse response) {
Session session= new Session(EcConnection.get()); try{
String sql1 = "select P_NAME, max(month_num) month_num,DATE_MONTH "+
" from PORT_LOAD_NUM WHERE P_NAME='一期码头' "+
" group by DATE_MONTH,P_NAME "+
" order by DATE_MONTH ";
String sql2 = "select P_NAME, max(month_num) month_num,DATE_MONTH "+
" from PORT_LOAD_NUM WHERE P_NAME='二期码头' "+
" group by DATE_MONTH,P_NAME "+
" order by DATE_MONTH ";
String sql3 = "select P_NAME, max(month_num) month_num,DATE_MONTH "+
" from PORT_LOAD_NUM WHERE P_NAME='杂货码头' "+
" group by DATE_MONTH,P_NAME "+
" order by DATE_MONTH "; List<PortLoadNumBean> portLoadNumBeanList1 = session.queryForList(sql1, 0, 10000000, PortLoadNumBean.class);
List<PortLoadNumBean> portLoadNumBeanList2 = session.queryForList(sql2, 0, 10000000, PortLoadNumBean.class);
List<PortLoadNumBean> portLoadNumBeanList3 = session.queryForList(sql3, 0, 10000000, PortLoadNumBean.class); //拼装json
LineOption lineOption = new LineOption();//option对象,改对象的属性值都是json中需要设定的,最后将该对象转换成json字符串返回前台即可
lineOption.setTooltip(new Tooltip());
lineOption.setLegend(new Legend());
List<Object> xAxis = new ArrayList<Object>(); //查询月份
String sqlMonth = "select distinct DATE_MONTH from PORT_LOAD_NUM where 1=? order by DATE_MONTH ";
List<String> months = session.queryForColumnList(String.class, sqlMonth, "1");
StringBuilder sb = new StringBuilder();
sb.append("[");
for (String month : months) {
sb.append("'");
sb.append(month);
sb.append("'");
sb.append(",");
}
String monthss = sb.toString().substring(0, sb.toString().length()-1);
monthss += "]";
String xAxisStr = "{type : 'category',boundaryGap : false,data : "+monthss+"}";
xAxis.add(xAxisStr);
lineOption.setxAxis(xAxis); List<Object> yAxis = new ArrayList<Object>();
String yAxisStr = "{ type : 'value'}";
yAxis.add(yAxisStr);
lineOption.setyAxis(yAxis); List<Object> series = new ArrayList<Object>();
Series series1 = new Series(); ArrayList<Object> dataList1 = new ArrayList<Object>();
for ( PortLoadNumBean bean : portLoadNumBeanList1) {
dataList1.add(bean.getMonth_num()/10000);
}
series1.setName("一期码头");
series1.setData(dataList1);
series.add(series1); Series series2 = new Series();
ArrayList<Object> dataList2 = new ArrayList<Object>();
for ( PortLoadNumBean bean : portLoadNumBeanList2) {
dataList2.add(bean.getMonth_num()/10000);
}
series2.setName("二期码头");
series2.setData(dataList2);
series.add(series2); Series series3 = new Series();
ArrayList<Object> dataList3 = new ArrayList<Object>();
for ( PortLoadNumBean bean : portLoadNumBeanList3) {
dataList3.add(bean.getMonth_num()/10000);
}
series3.setName("杂货码头");
series3.setData(dataList3);
series.add(series3); lineOption.setSeries(series); JSONObject jo = new JSONObject();
jo.put("option", lineOption);
try {
response.getWriter().write(jo.toString());
} catch (IOException e) {
e.printStackTrace();
} }finally{
session.close();
}
}

echarts实现条形图表的更多相关文章

  1. echarts生成的图表大小怎么随屏幕的大小改变自适应

    最近在做图表,记录一下用到的知识点,当做自己的日记吧,会不断添加新内容 1,echarts生成的图表大小怎么随屏幕的大小改变自适应? this.chart.setOption(this.options ...

  2. 通过百度echarts实现数据图表展示功能

    现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解 ...

  3. 利用Echarts设计一个图表平台(一)

    Echarts是一款百度的开源图表库,里面提供了非常多的图表样式,我们今天要讲的内容是利用这一款开源js图表,制作一个能够动态定制的图表平台. 1)Echarts API介绍 首先我们先来看一下Ech ...

  4. 如何快速使用ECharts绘制可视化图表

    1.在ECharts官网,下载ECharts的源码和示例文件. 2.解压缩下载下来的Echars压缩包,找到doc\example\www\echartsjs目录,将里面的js文件全部取出来,放到项目 ...

  5. vue+echarts 动态绘制图表以及异步加载数据

    前言 背景:vue写的后台管理,需要将表格数据绘制成图表(折线图,柱状图),图表数据都是通过接口请求回来的. 安装 cnpm install echarts --s (我这里用了淘宝镜像,不知道同学自 ...

  6. ECharts导出word 图表模糊失真

    在项目中会有这样的需求,echars生成图表导入到word中 在项目中用的插件 博主有一篇文章将的是  vue使用jquery的三方插件jquery.wordexport.js   https://b ...

  7. Echarts 一个开源图表设计工具

    一般来说,因有所需,方有所求.最近项目中有这方面的需求,用着感觉不错.特此记录!此处仅是一个简单的demo.官网地址:http://echarts.baidu.com/,相关文档.插件都有. 1.js ...

  8. [echarts] - echarts量化比较图表类型解析

    https://echarts.baidu.com/examples/editor.html?c=watermark <!DOCTYPE html> <!--用作两种货品的参数对比- ...

  9. mpvue 使用echarts动态绘制图表(数据改变重新渲染图表)

    最近在公司开发一款微信小程序,按照客户需求用饼状图显示当前设备状态(开机.故障.关机),于是就在网上寻找各种资料,找了很多mpvue使用关于echarts绘制图表,最终功夫不负有心人,找到一篇关于mp ...

随机推荐

  1. session失效后,登录页面嵌入iframe框架

    在登录页面的onload方法中加入以下代码解决: //防止登录页面嵌入iframe框架 if (top.location != self.location){ top.location=self.lo ...

  2. 【原创】js中利用cookie实现记住密码功能

    在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse res ...

  3. TTL

    TTL(Time To Live )是IP协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃.有很多原因使包在一定时间内不能被传递到目的地.解决方法就是在一段时 间后丢弃这个包,然后 ...

  4. solr 4.6配置正解

    最近在学习solr,可是在网上找了很多个配置的资料,要不就是solr版本不对,反正各种问题.最后终于出来了,在这里给大家分享一下 1.准备工作 我们要先去下载一个tomcat,我下载的版本是tomca ...

  5. Java中request请求之 - 带文件上传的form表单

    常用系统开发中总免不了显示图片,保存一些文件资料等操作. 这些操作的背后,就是程序员最熟悉的 enctype="multipart/form-data"类型的表单. 说起file类 ...

  6. 微信小程序文件作用域模块引用

    文件作用域 在 JavaScript 文件中声明的变量和函数只在该文件中有效:不同的文件中可以声明相同名字的变量和函数,不会互相影响. 通过全局函数 getApp() 可以获取全局的应用实例,如果需要 ...

  7. Linux命令基本格式及目录处理命令

    命令提示符 [root@localhost ~]# root:当前登录用户 localhost:主机名 ~:当前所在的目录,此处为"家"目录 #:root超级用户的提示符,如果是普 ...

  8. KVC与KVO

    KVC:键值编码(Key-Value-Coding),是一个非正式的Protocol,提供一种机制间接访问对象的属性,是路径访问的规范: KVO:键值观察 (Key-Value-Observe),是基 ...

  9. Spring 框架下Controller 返回结果在EasyUI显示

    这几天弄了一下java下的在后台返回数据到jsp页面上的显示: 总结一下: 首先后台方面: @RequestMapping(value="/searchByUserName") @ ...

  10. Windows下配置Git

    1.从git官网下载windows版本的git:http://git-scm.com/downloads 2.一般使用默认设置即可:一路next,git安装完毕! 3.但是如果这时你打开windows ...