Echarts通过Ajax实现动态数据加载

Echarts通过Ajax实现动态数据加载

用jquery的ajax来异步加载echarts图表数据,下面已一个简单的饼状图为例:


这是从官网上下的一个小例子:

<!DOCTYPE html>
<html style="height: 100%">
   <head>
       <meta charset="utf-8">
   </head>
   <body style="height: 100%; margin: 0">
   //图标容器,要有宽高
       <div id="container" style="height: 100%"></div>
       //引入的js
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
       
       <script type="text/javascript">
       //获取容器节点
var dom = document.getElementById("container");
var myChart = echarts.init(dom,'light');//light是主体
//初始化参数
var option = {
    title : {
        text: '你是傻子吗?',
        subtext: '调查问卷结果',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
        orient: 'vertical',
        left: 'left'
    },
    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)'
                }
            }
        }
    ]
};
	//显示
    myChart.setOption(option, true);

       </script>
   </body>
</html>

上面可以看到data中的数据是静态的,下面用Ajax填充数据

<!DOCTYPE html>
<html style="height: 100%">
   <head>
       <meta charset="utf-8">
   </head>
   <body style="height: 100%; margin: 0">
       <div id="container" style="height: 100%"></div>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
       <script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom,'light');
option = {
    title : {
        text: '',//这是标题,为空,下面填入
        subtext: '调查问卷结果',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
        orient: 'vertical',
        left: 'left'
    },
    series : [
        {
            name: '访问来源',
            type: 'pie',
            radius : '55%',
            center: ['50%', '60%'],
            data:[ ], //这里的数据为空,下面填入
            itemStyle: {
                emphasis: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]
};

    myChart.setOption(option, true);

$(function() {
			getData();
		})
		function getData() {
			$.ajax({
				type : "POST",
				url : "",//数据后台地址
				data : {},//参数
				success : function(res) {
				var data = JSON.parse(res);
					//添加标题
					option.title.text=data.title;
					//添加数据
					option.series[0].data=data.data;
					//激活显示
					myChart.setOption(option, true);
				}
			})
		}
       </script>
   </body>
</html>

OK,大功告成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值