echarts使用ajax接收数据并展示

首先找一个echarts实例

然后自己搭建环境运行

var lineChart = echarts.init(document.getElementById('event_pandect'),'macarons');(添加)

option = {
    title : {
        text: '某站点用户访问来源',
        subtext: '纯属虚构',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
        orient: 'vertical',
        left: 'left',
        data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
    },
    series : [
        {
            name: '访问来源',
            type: 'pie',
            radius : '55%',
            center: ['50%', '60%'],
            data:[
                {value:335, name:'直接访问'},
                {value:310, name:'邮件营销'},
                {value:234, name:'联盟广告'},
                {value:135, name:'视频广告'},
                {value:1548, name:'搜索引擎'}
            ],
            itemStyle: {
                emphasis: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]
};

lineChart.setOption(linechart,true);  (添加)

 

这时候需要ajax从后端获取数据填充到图标中,我最开始的想法是直接将ajax嵌入到echarts代码中,然后在success中再将返回值data写入到echarts需要填充数据处。实践证明这样是不行的,解决:

我先贴出正确运行源码,然后讲下修改的地方。

 var option = {
                title : {
                    text: '二级类型故障',
                    subtext: '第'+week_num+'周数据',
                    x:'center'
                },
                tooltip : {
                    trigger: 'item',
                    formatter: "{a} <br/>{b} : {c} ({d}%)"
                }



            };
            var names=[];
            $.ajax({
                type : "post",
                async : true,
                url : "/statistic/getNowEvents",
                data :{dept_id:dept_id,cmp_id:cmp_id,week_num:week_num},
                dataType : "json",        //返回数据形式为json
                success : function(data) {
                    for(var i=0;i<data.length;i++){
                        names.push(data[i].name);    //挨个取出类别并填入类别数组
                    }
                    pieChart.hideLoading();    //隐藏加载动画
                    pieChart.setOption({        //加载数据图表
                        legend: {
                            orient: 'vertical',
                            left: 'left',
                            data:names
                        },
                        series : [
                            {
                                name: '访问来源',
                                type: 'pie',
                                radius : '55%',
                                center: ['50%', '60%'],
                                data:data,
                                itemStyle: {
                                    emphasis: {
                                        shadowBlur: 10,
                                        shadowOffsetX: 0,
                                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                                    }
                                }
                            }
                        ]
                    });
                },
                error : function(errorMsg) {

                }
            });
            pieChart.setOption(option);

下方是需要动态添加数据的地方,将其抽离option中,然后使用后面代码进行包裹

 

然后调整前面代码:

 最后的代码结构为:标记处为重点

+

完整原文:http://blog.maptoface.com/post/107

  • 9
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
使用Echarts在Java中动态加载数据需要以下步骤: 1. 创建一个包含Echarts的HTML页面,通过Ajax请求从后台获取数据,然后渲染Echarts图表。 2. 在Java后端编写一个Controller,接收前端Ajax请求,查询数据库或者其他数据源,然后将数据以JSON格式返回给前端。 3. 在JavaScript中编写Ajax请求,获取后端返回的JSON数据,然后解析数据并渲染Echarts图表。 以下是一个简单的示例代码: 1. HTML页面 ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>动态加载Echarts数据</title> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.9.0/echarts.min.js"></script> </head> <body> <div id="chart" style="width: 600px;height:400px;"></div> <script> // 使用Ajax获取数据并渲染Echarts图表 function renderChart() { $.ajax({ url: '/getData', type: 'GET', dataType: 'json', success: function (data) { var chart = echarts.init(document.getElementById('chart')); chart.setOption({ title: { text: '动态加载Echarts数据' }, tooltip: {}, xAxis: { data: data.categories }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: data.data }] }); } }); } // 页面加载完成后渲染Echarts图表 $(document).ready(function() { renderChart(); }); </script> </body> </html> ``` 2. Java后端Controller ```java @RestController public class ChartController { @GetMapping("/getData") public Map<String, Object> getData() { // 从数据库或其他数据源查询数据 List<String> categories = Arrays.asList("衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"); List<Integer> data = Arrays.asList(5, 20, 36, 10, 10, 20); // 将数据以JSON格式返回给前端 Map<String, Object> result = new HashMap<>(); result.put("categories", categories); result.put("data", data); return result; } } ``` 3. JavaScript中的Ajax请求 ```javascript // 使用Ajax获取数据并渲染Echarts图表 function renderChart() { $.ajax({ url: '/getData', type: 'GET', dataType: 'json', success: function (data) { var chart = echarts.init(document.getElementById('chart')); chart.setOption({ title: { text: '动态加载Echarts数据' }, tooltip: {}, xAxis: { data: data.categories }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: data.data }] }); } }); } // 页面加载完成后渲染Echarts图表 $(document).ready(function() { renderChart(); }); ``` 以上是一个简单的使用Echarts在Java中动态加载数据的示例代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全职计算机毕业设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值