如何在ajax中动态填充echarts中的内容

本文介绍如何结合Ajax和ECharts,动态加载数据并填充到图表中。首先需要引入ECharts和jQuery库,然后通过编写JavaScript代码创建图表并设置Ajax请求以获取数据,最后在接收到数据后更新图表。
摘要由CSDN通过智能技术生成

  老规矩,先上界面看看。

 

  1. 导入echar和jquery的js,导入方法看官网文档->教程 ,如下图所示。Jquery的js百度即可

  2. 下面是我的实现代码,目的是为了分享一下自己的想法,仅供参考。如由更好的实现方法,欢迎评论!

  写一个div即可

<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="bar_graph" style="width: 600px;height:400px;"></div>

 js代码如下

<script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var bar_graph = echarts.init(document.getElementById('bar_graph'));
		var dashboard = echarts.init(document.getElementById('dashboard'));
		var ajaxUrl = ;
		bar_graph.showLoading(); //数据加载完之前先显示一段简单的loading动画
		dashboard.showLoading();
		var names = []; //列名
		var nums = []; //列值
		var rightTotal = 0; //消息正确总数
		var errorTotal = 0; //异常总数
		$.ajax({
			type : 'GET',
			url : ajaxUrl,
			dataType : 'JSON',
			success : function(result) {
				var data = result.data;
				if (result.success) {
					for (i = 0; i < data.length; i++) {
						//push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度
						names.push(data[i].countDate.substr(11, 5));
						nums.push(data[i].rightLogNum + data[i].errorLogNum);
						rightTotal += data[i].rightLogNum;
						errorTotal += data[i].errorLogNum;
					}
					bar_graph.hideLoading(); //隐藏加载动画
					bar_graph.setOption({ //加载数据图表
						title : {
							text : '消息总数条形图(近一小时)'
						},
						tooltip : {},
						legend : {
							data : [ '消息数量' ]
						},
						xAxis : {
							data : names
						},
						yAxis : {},
						series : [ {
							name : '消息数量',
							type : 'bar',
							data : nums
						} ]
					});
					var rightPercentage = toPercent(rightTotal, rightTotal + errorTotal);
					var errorPercentage = toPercent(errorTotal, rightTotal + errorTotal);
					var rightValue = rightPercentage.split("%")[0];
					console.log(rightValue);
					
					//初始化饼图
					$("#r_span").text(rightPercentage);
					$("#e_span").text(errorPercentage);
					var pieData = [
						{
							value : errorTotal,
							color : "#ea4c89"
						},
						{
							value : rightTotal,
							color : "#00C6D7"
						}
	
					];
					new Chart(document.getElementById("pie").getContext("2d")).Pie(pieData);
	
					dashboard.hideLoading();
					//初始化仪表盘
					option = {
						tooltip : {
							formatter : "{a} <br/>{b} : {c}%"
						},
						toolbox : {
							feature : {
								restore : {},
								saveAsImage : {}
							}
						},
						series : [
							{
								name : '指标',
								type : 'gauge',
								detail : {
									formatter : '{value}%'
								},
								data : [ {
									value : rightValue,
									name : '成功率'
								} ]
							}
						]
					};
					
					setInterval(function() {
						dashboard.setOption(option, true);
					}, 2000);
	
	
				} else {
					alert('图表请求数据失败!');
				}
			},
			error : function(errorMsg) {
				alert('图表请求数据失败!');
			}
		});
	
	
		//计算百分比
		function toPercent(num, total) {
			return (Math.round(num / total * 10000) / 100.00 + "%"); // 小数点后两位百分比
		}
	</script>

  3.大功告成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值