最近把编辑器从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填充数据的更多相关文章

  1. jquery mobile开发笔记之Ajax提交数据(转)

    http://my.oschina.net/xiahuawuyu/blog/81763 这两天学习了下,jquery mobile(以下简称jqm)的开发相关的内容.可能之前有过web的开发基础,相对 ...

  2. ECharts, PHP, MySQL, Ajax, JQuery 实现前后端数据可视化

    ECharts 下载js代码 工作原理浅析 在项目中引入ECharts 后台处理 数据库端MySQL PHP端 JQuery Ajax处理 ECharts 端处理 前端全部代码 演示结果 总结 最近要 ...

  3. ajax请求数据动态填充之文档与字符串区别手法

    success: function(data){ if(data.status==200){ var realName=data.doc.realName; $("#yishiul" ...

  4. 基于echarts 24种数据可视化展示,填充数据就可用,动手能力强的还可以DIY(演示地址+下载地址)

    前言 我们先跟随百度百科了解一下什么是"数据可视化 [1]". 数据可视化,是关于数据视觉表现形式的科学技术研究. 其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来 ...

  5. 小笔记(一):ajax传递数组及将ajax返回数据赋值

    当使用ajax传递数据时,有可能传递多个数据,这是使用以下方法传递数据就会显得数据过多且混杂 $.ajax({ type:'post', url:url, data:{data:data,conten ...

  6. ExtJS学习笔记2:响应事件、使用AJAX载入数据

    响应事件: 1.设置一个html标记 <div id="my-div">Ext JS 4 Cookbook</div> 2.使用get函数获取此标记对象 v ...

  7. jQuery学习笔记之Ajax用法详解

    这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...

  8. ECharts 从后台动态获取数据 (asp.net)

    (一) 使用工具 visual studio 2017:Web开发:asp.net (代码中的js引用路径以及ajax方法调用的url,记得修改哦) (二) 准备工作(此处写给和我一样小白) 1.动态 ...

  9. .NET MVC 学习笔记(六)— 数据导入

    .NET MVC 学习笔记(六)—— 数据导入 在程序使用过程中,有时候需要新增大量数据,这样一条条数据去Add明显不是很友好,这时候最好就是有一个导入功能,导入所需要的数据,下面我们就一起来看一下导 ...

随机推荐

  1. Python装饰器实现几类验证功能做法(续)

    :昨天聊了一下构造.今天试了一下.感觉昨天聊的还是不够细化.今天结合代码实现,加以一点补充. 首先观察下面这个例子 from functools import wrapsdef decorator(f ...

  2. 编写第一个python selenium程序(二)

    上节介绍了如何搭建selenium 系统环境,那么本节来讲一下如何开始编写第一个自动化测试脚本. Selenium2.x 将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里 ...

  3. Ubuntu设置终端相对短路径

    这个设置相对实际上是比较简单的.在自己的家目录打开.bashrc 找到PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$' 只需要将w修改为大写W保存, ...

  4. 【JAVAWEB学习笔记】10_JDBC连接池&DBUtils

    使用连接池改造JDBC的工具类: 1.1.1          需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...

  5. 如何选择版本控制系统之二---Git的研发应用场

    之前写了一篇<如何选择版本控制系统 ---为什么选择Git版本控制系统>,地址是:http://www.cnblogs.com/goldenfish/p/6876864.html,有兴趣的 ...

  6. OpenCV探索之路(十三):详解掩膜mask

    在OpenCV中我们经常会遇到一个名字:Mask(掩膜).很多函数都使用到它,那么这个Mask到底什么呢? 一开始我接触到Mask这个东西时,我还真是一头雾水啊,也对无法理解Mask到底有什么用.经过 ...

  7. 关于微信小程序遇到的wx.request({})问题

    域名请求错误问题 当我们在编写小程序,要发送请求时,wx.request({})时或许会遇到如下的问题: 一:这是因为微信小程序的开发中,域名只能是https方式请求,所以我们必须在小程序微信公众平台 ...

  8. 走进javascript——数组的那些事

    Array构造器 如果参数只有一个并且是Number类型,那么就是指定数组的长度,但不能是NaN,如果是多个会被当做参数列表. new Array(12) // (12) [undefined × 1 ...

  9. Your data vis “Spidey-sense” & the need for a robust “utility belt”

    @theboysmithy did a great piece on coming up with an alternate view for a timeline for an FT piece. ...

  10. js中 substr(), substring(), slice()的区别

    一.作用 三者都是基于原字符串创建新字符串的方法. 接收一到两个参数,第一个参数截取字符串的开始位置(字符下标,从0开始),第二个参数因方法不同而不同,后面不同点会说到. 另外,三个方法都不会修改原字 ...