关于Echarts堆叠柱状图从后台查数据并展示

1.首先去Echarts官网下载插件,引入到jsp中
(https://echarts.baidu.com/)

<script type="text/javascript" src="www/echarts.min.js"></script>

2.给按钮注册事件

<li  onclick="queryInfo()"><span></span><div>查询</div></li>

3.编写事件代码,这里是通过ajax向后台发送请求,在回调函数中为已经构建好的echarts图表填充数据(也可以在回调函数中构建图表)

function queryCostStructure(reportYear){
	   			   //基于准备好的dom,初始化echarts实例,这里的“main”随便定义一块div就行
	   		        var myChart = echarts.init(document.getElementById('main'));
	   		        // 指定图表的配置项和数据,这里是堆叠柱状图的一些属性,详细可以参考echarts官网实例
	   		        var option = {
	   		            tooltip: {
	   		                 trigger: "axis",  
	   		            },
	   		            legend: {
	   		                data:['费用A','费用B'],
	   		            },
	   		            xAxis: {
	   		                data: [],//表示横轴坐标
	   		                splitLine:{
	   		                    show:false,
	   		                },
	   		                axisLabel :{interval:0,rotate:50} //rotate表示横轴文字倾斜角度
	   		            },
	   		            yAxis: {
	   		                 splitLine:{
	   		                    show:false,
	   		                },
	   		            },
	   		            series: [{
	   		                name: '费用A',
	   		                type: 'bar',
	   		                barWidth : 20,//柱图宽度
	   		                stack:'费用构成',//表示在哪一列
	   		                data: [],
	   		                itemStyle:{
	   		                     normal:{color:"#00BFFF"},//表示堆叠柱状图填充的颜色
	   		                }
	   		            },{
	   		                name: '费用B',
	   		                type: 'bar',
	   		                stack:'费用构成',//表示在哪一列,如果和上面的相同,则在一个柱上展示,如果不同,分两个柱展示
	   		                data: [],
	   		                itemStyle:{
	   		                     normal:{color:"#40E0D0"},
	   		                }
	   		            }]
	   		        };
	   				$.ajax({//ajax访问后台
	   		            type: "post",
	   		            url: "${adminPath }/budgetStatistic/projectResearchBudgetEcharts",
	   		            dataType:"json",
	   		            async:false,
	   		            data: {"reportYear":reportYear},
	   		            success:function(result){
	   		            	if(result.length>0){
	   		            		for(var i=0;i<result.length;i++){
	   		            		//通过在回调函数中遍历结果集,填充图表数据
	   			            		option.xAxis.data.push(result[i].name);
	   			            		option.series[0].data.push(result[i].feeA);
	   			            		option.series[1].data.push(result[i].feeB);
	   			            	}
	   		            	}
	   		            }	
	   		        });
	   			    myChart.clear();
	   			    // 使用刚指定的配置项和数据显示图表。
	   		        myChart.setOption(option);
	   		 	
	   		}
``


```后台逻辑就是普通的控制层调用业务层
注意要在方法上加注解@ResponseBody,因为ajax使用json格式传递数据
@RequestMapping("/projectResearchBudgetEcharts")
	@ResponseBody
	public List<AAA> getAAA(BBB entity, ModelMap model, HttpServletRequest request){
		List<BBB> list = budgetStatistic.getResearchBudgetEchars(entity);
		return list;
	}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值