echarts经ajax与后端交互数据,绘制柱状图

记得去官网导包。本柱状图y轴要用百分比显示,所以以double类型传入前端显示,再加%。

前端

<div id="main" style="width: 1800px;height:1200px;"></div>
//js
	var zChart = echarts.init(document.getElementById("main"));// 柱形图模板
	function fun(x_data, y_data) {

		var option = {

			/*title : {
				text : 'ECharts 示例', //主标题文本,支持使用 \n 换行。
				link : '', //主标题文本超链接
				textStyle : { //该属性用来定义主题文字的颜色、形状等
					color : '#3398DB',
				}
			},*/
			tooltip : {
				trigger : 'axis',
				axisPointer : { // 坐标轴指示器,坐标轴触发有效
					type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
				},


				formatter: '{b}<br />{a0}: {c0}%<br />'

			},
			grid : {
				left : '6%',
				right : '20%',
				bottom : '20%',
				containLabel : true
			},
			xAxis : [ { //x轴列表展示
				type : 'category',
				data : x_data,
			} ],
			yAxis : [ { //定义y轴刻度
				type : 'value',
				scale : true,
				name : '百分比',
				max : 100,
				min : 0,
				splitNumber : 10,
				boundaryGap : [ 0.2, 0.2 ],
				axisLabel: {

					show: true,

					interval: 0,

					formatter: '{value} %'  // 给每个数值添加%
				}


				} ],
			series : [ {
				name : '占比',
				type : 'bar', //bar 柱状图     line 折线图 等
				barWidth : '40%', //柱的宽度
				data : y_data,
				label: {
					show: true,
					position: 'inside',//数据在中间显示
					formatter:'{c}%'//百分比显示
				},

				itemStyle: {
					normal: {
						// 颜色随机显示
						color:function(d){return "#"+Math.floor(Math.random()*(256*256*256-1)).toString(16);}
					},
				},
			} ]
		};

		zChart.setOption(option);
	}
$(function(){
		$.ajax({
			url : "/asset/echats.do",   //请求控制层接口
			type : 'GET',
			success : function(data) {
				fun(data.xData, data.yData);
			},
			error : function(data){
				alert(1);
			}
		});
		
    });

后端
先建立关于x轴y轴的实体类

public class EchatsRes {
    private List<String> xData;
    private List<Double> yData;
    public List<String> getxData() {
        return xData;
    }
    public void setxData(List<String> xData) {
        this.xData = xData;
    }
    public List<Double> getyData() {
        return yData;
    }
    public void setyData(List<Double> yData) {
        this.yData = yData;
    }
    @Override
    public String toString() {
        return "EchatsRes [xData=" + xData + ", yData=" + yData + "]";
    }
}

控制层

 @ResponseBody
    @RequestMapping("echats.do")
    public EchatsRes echatslist() {

        

        List<String> xList = new ArrayList<String>();  //x轴数据
        List<Double> yList = new ArrayList<Double>();  //y轴数据

       /*
        
        //获取资产
        List<Map<String, Object>> res = assetDao.getAssetBy();
        for (Map<String, Object> m : res) {
            for (String k : m.keySet()) {

                String str = String.valueOf(m.get(k));

                if (k.equals("InitialPrice")) { //y
                    double dou = Double.valueOf(str).doubleValue();
                    double a = (dou / prices * 100);
                    String result = String.format("%.2f", a);
                    yList.add(Double.valueOf(result)); //占总价值比例,保留两位小数
                }

            }

        }
        //处理你的数据
        ......
        */


        EchatsRes echatsRes = new EchatsRes();
        echatsRes.setxData(xList);
        echatsRes.setyData(yList);

        return echatsRes;
    }

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值