eChartJs图表通过ajax更新数据

2018年10月29日00:03:40 XXM

上一篇 eChartJs图表设计:如何绘制一个饼图 传送门

接上一篇代码:

//初始化配置
var 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)'
                }
            }
        }
    ]
};
//初始化实例
var myChart = echarts.init(document.getElementById('myChart'));

ajax代码:

$.ajax({
        type : "GET",
           url : 服务地址,
           dataType : "json",    
           async:false,   
            success:function(result){  //成功的回调函数                
                option.series = result;
                console.log('更新完成');

            },
            error: function (e,textStatus) {
                console.log('数据失败');
            }
    })

上面这段代码就是以同步的方式获取数据,返回的数据格式需要是json并且数据格式跟以下一致

[
        {
            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)'
                }
            }
        }
    ]

等ajax完成后,再将配置填入到setOption中

myChart.setOption(option);

不然可能会出现数据没有加载出来的情况,推荐使用同步模式,如果是异步操作的话就等数据成功获取到,再通过回调setOption来显示图表,这样就可以避免数据无法加载的情况.

如果需要动态更新图表的话,需要带个参数true,不带的话,会将option跟之前的option进行合并,会出现数据空白或者无法加载的情况

myChart.setOption(option,true);

了解完这两篇就已经基本的可以使用echartJs来完成一些简单的图表设计了.如果有坑的话注意看代码变动,目前我踩的坑已经全部叙述了.

byebye

timg (1).jpeg

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容