Echarts笔记——使用AJAX填充数据
最近把编辑器从Sublime换成HBuilder,感觉好用很多啊,可能自己插件没弄好吧。不不过HBuilder的启动速度确实慢,放机械盘启动要7-13秒,还好有固态。
因为项目需要,这周上手了百度的Echarts,不得不说是百度的良心产品,功能很强大,除了自己定义图表格式,还能通过调用百度地图API进行图表如热点图之类的展示,另外由于是国产的,文档也很齐全,顺着文档把里面的设置过了一遍,把基本情况搞清楚了。
本文的主要内容 通过AJAX调用本地JSON文件生成数据放入图表中,图表用的线图,先上外观
功能是通过单选按钮选择数据源,JS中通过选择的值控制Ajax的请求url,然后点击显示按钮生成图表并改变图表标题,现在说实现步骤:
一、HTML
1.先把页面效果做出来,页面里需要的按钮,单选等,然后下方需要预定义一块DIV放图表,填充放在JS中实现。
2.引入js,用到了jquery-3.1.1.js、echarts.js和自己写的data1.js,样式为了好看些用了bootsrtap。
3.这里在单选按钮的value上存放了文件名,并将第一个radio设置了默认选中。
代码+源码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>游龙翔隼-Echarts</title>
<script type="text/javascript" src="js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="js/echarts.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css" />
</head>
<body>
<div class="form-control" style="width: 300px;height: 100px;margin: 5px auto;padding: 20px;">
<input type="radio" class="box" checked="checked" name="switchChart" id="chk" value="sale.json" />
<span for>2016年</span>
<input type="radio" class="box" name="switchChart" id="chk1" value="sale1.json" />
<span>2017年</span>
<input id="showChart" class="btn-primary" type="button" value="显示"/>
</div>
<div id="main" style="width: 600px;height: 400px;margin: 10px auto;"></div>
<script type="text/javascript" src="js/data1.js"></script>
</body>
</html>
二、JavaScript
代码+源码:
var myChart =echarts.init(document.getElementById("main"));//初始化chart
var btn1=$("#showChart");
var chk=$(".box");
var txt=$("span");
//图表封装在此
btn1.click(function(){
myChart.showLoading(); //加载效果
for(var mark=0;mark<chk.length;mark++){
if(chk[mark].checked){
//alert(chk[mark].value);
//var source=chk[mark].value;
var tle=txt[mark].innerText;
console.log(tle);
var source="json/"+chk[mark].value;
var names=[];
var ages=[];
$.ajax({
type:"get",
url:source,
async:true,
dataType:"json",
success:function(result){
console.log("请求成功:");
var tip = result.length;
for(var i=0;i<tip;i++){
names.push(result[i].name);
}
for(var i=0;i<tip;i++){
ages.push(result[i].age);
}
var option ={
// 标题
title:{
text:tle,
left:100,
borderColor:"#eee",
borderWidth:2,
},
// 工具箱
toolbox:{
show:true,
feature:{
saveAsImage:{
show:true,
},
dataView:{
show:true,
},
restore:{
show:true,
},
dataZoom:{
show:true,
},
magicType:{
show:true,
type:['line', 'bar', 'stack', 'tiled'],
}
},
},
// 触发器
tooltip:{
trigger:"item",
},
// 图例
legend:{
data:[tle+"1-8月出票量"],
},
// X轴
xAxis:{
data:names
},
// Y轴
yAxis:{},
// 数据
series:[{
name:tle+"1-8月出票量",
type:"line",
data: ages
}]
}
//将设置好的option置入myChart
myChart.setOption(option);
//模拟等待时间
setTimeout("myChart.hideLoading()",800);
},
error:function(){
console.log("failed");
myChart.hideLoading();
}
})
}
}
})
三、JSON
sale.json
sale1.json
思路:通过radio的值改变ajax的请求路径,将对应的span内容作为图表的标题。实际项目中可以改为在AJAX请求过程中传入radio的值,让后台判断所需的数据。
Echarts笔记——使用AJAX填充数据的更多相关文章
- jquery mobile开发笔记之Ajax提交数据(转)
http://my.oschina.net/xiahuawuyu/blog/81763 这两天学习了下,jquery mobile(以下简称jqm)的开发相关的内容.可能之前有过web的开发基础,相对 ...
- ECharts, PHP, MySQL, Ajax, JQuery 实现前后端数据可视化
ECharts 下载js代码 工作原理浅析 在项目中引入ECharts 后台处理 数据库端MySQL PHP端 JQuery Ajax处理 ECharts 端处理 前端全部代码 演示结果 总结 最近要 ...
- ajax请求数据动态填充之文档与字符串区别手法
success: function(data){ if(data.status==200){ var realName=data.doc.realName; $("#yishiul" ...
- 基于echarts 24种数据可视化展示,填充数据就可用,动手能力强的还可以DIY(演示地址+下载地址)
前言 我们先跟随百度百科了解一下什么是"数据可视化 [1]". 数据可视化,是关于数据视觉表现形式的科学技术研究. 其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来 ...
- 小笔记(一):ajax传递数组及将ajax返回数据赋值
当使用ajax传递数据时,有可能传递多个数据,这是使用以下方法传递数据就会显得数据过多且混杂 $.ajax({ type:'post', url:url, data:{data:data,conten ...
- ExtJS学习笔记2:响应事件、使用AJAX载入数据
响应事件: 1.设置一个html标记 <div id="my-div">Ext JS 4 Cookbook</div> 2.使用get函数获取此标记对象 v ...
- jQuery学习笔记之Ajax用法详解
这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...
- ECharts 从后台动态获取数据 (asp.net)
(一) 使用工具 visual studio 2017:Web开发:asp.net (代码中的js引用路径以及ajax方法调用的url,记得修改哦) (二) 准备工作(此处写给和我一样小白) 1.动态 ...
- .NET MVC 学习笔记(六)— 数据导入
.NET MVC 学习笔记(六)—— 数据导入 在程序使用过程中,有时候需要新增大量数据,这样一条条数据去Add明显不是很友好,这时候最好就是有一个导入功能,导入所需要的数据,下面我们就一起来看一下导 ...
随机推荐
- Cisco Packet Tracer做单臂路由的过程
Cisco Packet Tracer版本:6.0.0.0045 单臂路由 VLAN规划 switch 0上配置:Switch>enSwitch(config)#vlan 2 #创建vlan2S ...
- 200 OK (from cache)原因
Meta标签中的http-equiv用来标记不可缓存或过期时间,但效果一般.而且代理缓存基本不访问HTML文档内容,所以尽量少用meta标签控制缓存. Pragma: no-cache Forces ...
- UITextView 实现链接点击事件
UILabel通过富文本可以实现图文混排,但是想要实现文字的点击效果好像不容易实现,这里有2种方法可以达到效果 YYLabel -->YYText框架 参考我之前的博客:http://www.c ...
- UIWebView 跳过HTTPS证书认证
UIWebView跳过证书认证 在UIWebView中加入如下代码即可(Error Domain=NSURLErrorDomain Code=-1202) //跳过证书验证 @interface NS ...
- oracle创建用户四部曲
创建用户一般分四步: 第一步:创建临时表空间 第二步:创建数据表空间 第三步:创建用户并制定表空间 第四步:给用户授予权限 创建临时表空间 create temporary tablespace ho ...
- 一天搞定CSS: 浮动(float)的副作用--12
我们通常使用浮动来实现某些元素的布局,但是往往这些元素浮动会影响其他元素的布局,因此会产生副作用. 如果你还不清楚什么是浮动,那就点开这个链接: http://blog.csdn.net/baidu_ ...
- OpenGL ES 2.0 渲染管线 学习笔记
图中展示整个OpenGL ES 2.0可编程管线 图中Vertex Shader和Fragment Shader 是可编程管线: Vertex Array/Buffer objects 顶点数据来源, ...
- Java web中常见编码乱码问题(二)
根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析: 2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...
- 如何修改"DEDECMS 提示信息!"方法!
dedecms程序使用过程中,经常有一些跳转提示信息会出现“DEDECMS 提示信息!”这几个字样. 很多朋友都想对他进行修改,改为自己网站的提示信息,其实方法也是很简单的,方法如下: 用编辑器打开i ...
- 演讲小技巧iPhone+Keynote
原文发布在简书上:http://www.jianshu.com/p/a45538ca611f 今天在公司里分享了一个技术雷达里关于 ECMAScript 2017 的小 Session,分享加问答总共 ...