zoukankan      html  css  js  c++  java
  • echarts实现条形图表

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

    前台调用:

    <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();
            }
        }
  • 相关阅读:
    把数据库转化成数据库脚本
    营养瘦身第一菜——金陵素什锦 健康程序员,至尚生活!
    十类好吃不胖的食物 健康程序员,至尚生活!
    一周带饭实录(附作菜菜谱) 健康程序员,至尚生活!
    日常五大习惯有助减肥 健康程序员,至尚生活!
    【暴强】200种好口碑便宜护肤品 健康程序员,至尚生活!
    腹式肠道操 缩胃瘦身有奇效 健康程序员,至尚生活!
    一天4时段喝水轻松瘦身 健康程序员,至尚生活!
    10种不要钱的护肤法则 健康程序员,至尚生活!
    看了这篇你肯定瘦 全身上下想瘦哪就瘦哪 健康程序员,至尚生活!
  • 原文地址:https://www.cnblogs.com/clovem/p/5662944.html
Copyright © 2011-2022 走看看