简单echars说明和使用
1、AMD规范的加载器——esl.js,这是什么?
答:关于AMD规范可以参考阮一峰的这篇文章
Javascript模块化编程(二):AMD规范 简单来说,AMD规范就是异步方式加载模块的一种方式,避免因为模块加载过慢而导致浏览器“假死”。
2、我们先来看一下echart的大概的包:
- echarts.js : 经过压缩,包含除地图外的全部图表
- echarts-original.js : 未压缩,可用于调试,包含除地图外的全部图表
- echarts-map.js : 经过压缩,全图表,包含world,china以及34个省市级地图数据
- echarts-original-map.js : 未压缩,可用于调试,全图表,包含world,china以及34个省市级地图数据
看得出,这种分类非常有意义。
echarts-original.js : 未压缩,可用于调试,包含除地图外的全部图表echarts-map.js : 经过压缩,全图表,包含world,china以及34个省市级地图数据echarts-original-map.js : 未压缩,可用于调试,全图表,包含world,china以及34个省市级地图数据
看得出,这种分类非常有意义。
3、echarts更规范的一点,那就是模块化加载,需要哪个部分就是用哪个部分。
关于Echarts的那个入门图表,我想很多新手跟我一样的迷惑,require和require.config这个两个公共方法到底什么来的?
答:AMD规范的加载器——esl.js的公共方法。(如有错误,请指正。)
4、require.config的作用是什么?
答:为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需的图表路径。一切尽在echarts-2.0.4文件夹下的src文件夹中。
5、解释一下require方法?
答:require方法有2个参数。
第一个参数为一个数组,数组元素是需要加载的echarts模块,需要哪个就加载哪个。(经本人测试,这个数组传入一个空数组都是可以的 !- -)莫非,传入不正确,会加载全部文件到内存,传入正确就加载部分模块到内存?求大神解答!
第二个参数为一个带一个参数的方法:function (ec){}, 这个ec对象就是echarts对象了。
参考网址:http://echarts.baidu.com/doc/start.html
一、制作一个图表容器
<div id="main" style="height:400px;"></div>
二、引入echarts.js文件
<script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
三、配置图表路径
require.config({
paths:{echarts:".../dist"}
});
四、加载图表js文件
require(["echarts", "echarts/chart/bar"], loadComplete);
五、绘制图表
function loadComplete(ec) {
var myChart = ec.init(document.getElementById("main"));
var option = { ... }; // 图表配置信息
myChart.setOption(option);
}
上代码:
下面案例的格式:
</div>
<div class="mod-hd" align="center">
<div class="ibox-content">
<div id="line88" style="height: 400px;width: 95%" align="center"></div>
</div>
$control.setTemplate('order/LineGraph.vm').setParameter('line', $lineGraph).setParameter('type','88')
</div>
</div>
<script type="text/javascript">// 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});// 使用
require(
[
'echarts',
'echarts/chart/line',
'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
],
function (ec) {
// 基于准备好的dom,初始化echarts图表
var lineId="line"+ "$!type";
myChart = ec.init(document.getElementById(lineId));
lineList[$!type] = myChart;
var charJson = '$!line'.replace(new RegExp(""","g"),"\"");
fareGraphLine(charJson, myChart, $!type);}
);
function BuildLineOption(chartData){
var seriesList = [],lengend = [];
var dataList = chartData.dataList;
var jxdata = chartData.xdatas;
var jtitle = chartData.title;
for(var data in dataList){
lengend.push(dataList[data].title);
var series = {
name : dataList[data].title,
type:'line',
smooth:true,
symbol: 'emptyCircle',
symbolSize : 1,
clickable: true,
// markPoint : {
// data : [
// {type : 'max', name: '最大值'},
// {type : 'min', name: '最小值'}
// ]
// },
markLine : {
precision: 0,
data : [
{type : 'average', name: '平均值'}
]
}
};
series.data = dataList[data].values;
series.name = dataList[data].title;
seriesList.push(series);
}
var option = {
tooltip : {
trigger: 'axis',
position : [0,0],
position : function(p) {
// 位置回调
// console.log && console.log(p);
return [p[0] + 10, p[1] - 10];
},
formatter: function (params,ticket,callback) {
var res = '' + params[0].name;
for (var i = 0, l = params.length; i < l; i++) {
res += '<br/>' + params[i].seriesName + ' : ' + params[i].value;
}
setTimeout(function (){
// 异步回调
callback(ticket, res);
}, 600)
return "<b style='color:#00FFFF;'>点击焦点可查看详情</b>";
}
},
grid: {
x: 60,
y: 40,
x2: 60,
y2: 30
},
legend: {
data: lengend, //线条,数据类型轴
selected: {
'是否显示':true
},
},
xAxis : [
{
type : 'category',
boundaryGap : true,
min:"00:00",
max : "23:59",
data : jxdata //X轴数据
}
],
yAxis : [
{
type : 'value',
name : jtitle, //Y轴数据
boundaryGap: [0,0.1]
}
],
calculable : true,
dataZoom : {
show : false,
realtime : true
},
toolbox: {
show : true,
orient: 'vertical',
x: 'left',
y: 'center',
feature : {
//mark : {show: true},
// dataView : {show: true, readOnly: false},
dataZoom : {show: true},
magicType : {show: true, type: ['line', 'bar']},
restore : {show: true},
saveAsImage : {show: true}
}
},
series : seriesList
};
return option;}
function fareGraphLine(chartData, chartObj, type){
chartObj.clear();
chartData = JSON.parse(chartData);
var option = BuildLineOption(chartData);//开始画图
chartObj.setOption(option);
var ecConfig = require('echarts/config');
if(type!=99){ //99代表线不绑定click
chartObj.on(ecConfig.EVENT.CLICK, function (param){
if (param.type == 'click') {
clickPaintLine(param);//点击事件
}
});
}
}</script>
线条:aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOcAAAAeCAIAAABYC56mAAAFAUlEQVR4nO2a7U/bRhzH+wdVqjZWaRJv0pWITnuxSATIpm7S1GXzGo1QlpQs4aGtXFTIHrs5wDQiESUs0FGsrZpAyFrLStIaKpU0WQOYQhhsCgS7XrYXrNK8F6eeUj/FSTynlu4jv8iD73d33983v7tLcuToyG4RgTAPR0d2j9R7DAhExSDXIswHci3CfCDXIswHci3CfCDXIswHci3CfCDXIsyH0a7NzVxfcWFJ64mk9ZUVF7ZNzlQageM4m83WIKGxsTGdTkvvJwgiEonIhqJpWukt8K7FYsnn8zzPd3d3i7pTaahxFoPEWIuz611Pf4uzazA09pjnK42gRQeapnEcL20IpwOnUEcdqsNQ1z7wdjHBQTax+A/LHrIsm1hcuzKQ8XdXFITjOJ/Px7Ks6PXh4eF0Oi2rrAgMw1iWVb+ToijQV2trayqV6unpyefzsC/1NJfX4eFqw6uO+YXk6saWIAirG1vzC8kXm9sy2TW9dIBPCYKgKIogCKkC4IY66lA1xrn2115/bjwsSMiNfZvpC2iPo6XG8DwfCAREpVeUZoZhgsGglh71rTH3Upm3OvxSHQRBOP3hx/fTDzXG0aIDwzCdnZ0sy0IrS31WLx1qwSDXbn43wXw6JJsqQRDWBwe2piY1htJSY5TqB6wxwNbxeFylwMCtBc/zOtaY1952HXCPZXXIFw5ef6dDLx2ACGCcSq6tow61YJBrl99sK65mlVz7ZyazfPqNskG0r/5lQ0l3e7KQJInjuI415ifqVkfvFSUdBEFwBS7P3bytHkSjDtPT0y6XS9219dKhRvR3bX55aXMiKroWjr+gkqp/nzz55eWXpK3yy0vS+CRJws2WbLFRWjoBYAEdHR2NxWKyN0izWHWNiU7/KLrO+vHQeFxFiqvhCZf/srRhFTrMzMwkEgkwTtG+Fjo7FAoZoIPu6O/anbnZzMX+Z66+noT1hEqqBEFINlnS/b2ihjtzs9L4JElCZZ1Op9vthk/BUVcpiwDRYUWEaJOnsRQp0Rf8WnS1ve+JTt9Q0WF86od2zCNtWIUOxRJXwVlr3MXqq4PuGLRDWLLb/t58pJSqv5j15Xa7xlCiGpPNZoG+UGjo2tK8NjzdPFTkWnAAp2laWoqgMyqCnKW8+Gcqrv3o0ic35m/qokNRzrXqH2nDdKgRg1y7HiJ2r00ppWp3Mr7xzYjGUCBbcMmzWCyxWCwcDjscDiBfqWtBXotyp2lZQNu9vT2fz1coFMAXESD3IJHwBthdRezt7zs+8Kq4tg3zHGjYl2vRoShxLcMw8XgcPOY4TmUK/7cONWLcN19Ldht79440TweLtysqtCBJFEVBdzIMY7Va4TmslloLDhzRaDQYDEKj65stcpZ67/xFWcue8fRrL7RldSg+61rwRQGO4zRNYxgGHKlUdA3QoRYM/ZWBbrH9cf37w8I+SNJhYf/3a5PaLSuC4ziv1+t2u0GeQM5wHJddBOERreyKBtbBSCQCDs4i60s/BlWM/OfFu46z5x9t70C/bmz91o55biXpKqIp6VB86lpgwdJXwKTUt6oG6FA1Rv+iu3b18+SppmTzyWTzyTunmta/+tLgATwnLN1/cO7C0DGr3TfwxTGr/dyFoXsriisAQkR9/j3D5XLc9nZdun7eSGWy9R6C+UD/+UKYD+RahPlArkWYD+RahPlArkWYD+RahPlArkWYD+RahPn4Dx4sOEKVu/JIAAAAAElFTkSuQmCC" alt="" />
参考:
简单echars说明和使用的更多相关文章
- HCharts随笔之简单入门
此处可以对比我的另一个Echars简单入门 直接上源码 <!DOCTYPE html> <html> <head> <meta http-equiv=&quo ...
- SNF快速开发平台MVC-集成了百度开源项目echars
百度开源项目echars图表样式非常丰富,而且开源免费.非常好.所以在我们框架当中也进行了集成echars完成图表任务. 我们进行了两次封装,利于我们开发使用.我也看到过有些架构师 按echars里的 ...
- jquery中的插件EChars的使用
首先,进入EChars的官网下载页面:http://echarts.baidu.com/download.html 下载自己需要的版本. 引入jquery包和echars,进入官网的实例:htt ...
- 【造轮子】打造一个简单的万能Excel读写工具
大家工作或者平时是不是经常遇到要读写一些简单格式的Excel? shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下. 厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式 ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 哪种缓存效果高?开源一个简单的缓存组件j2cache
背景 现在的web系统已经越来越多的应用缓存技术,而且缓存技术确实是能实足的增强系统性能的.我在项目中也开始接触一些缓存的需求. 开始简单的就用jvm(java托管内存)来做缓存,这样对于单个应用服务 ...
- 在Openfire上弄一个简单的推送系统
推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
随机推荐
- C++设计模式之代理模式
IPhone 6已经在中国香港开售了,圆了在专卖店等候一个多月苹果粉丝的苹果梦.然而对中国大陆而言.须要到9月17日苹果才在大陆开售.这对中国大陆的粉丝而言,不亚于一种煎熬,因此而滋生一种代购 ...
- CF Codeforces Round #256 (Div. 2) D (448D) Multiplication Table
二分!!! AC代码例如以下: #include<iostream> #include<cstring> #include<cstdio> #define ll l ...
- unity, inspector debug
以前经常因为脚本中private变量不在inspector界面中显示,不方便观察其值的变化,所以本该用private的用了public. 今天发现,原来inspector有个选项,如图,平常勾选的是N ...
- [na]esxi6.5的vmware安装
安装exsi6.5(最新的软件见评论区) ,安装 ,激活(可选) ,浏览器登录(.5好像没客户端了,所以就用浏览器,挺方便的) 安装包和key包在网盘里: 链接:https://pan.baidu.c ...
- JQuery常用操作实现方式
http://www.cnblogs.com/guomingfeng/articles/2038707.html 一个优秀的 JavaScript 框架,一篇 jQuery 常用方法及函数的文章留存备 ...
- JBoss高危漏洞分析
前言 JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用:JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1.EJB 2.0和EJB3规 ...
- 华为终端开放实验室Android Beta 4测试能力上线
7月26日,Android P Beta 4发布(即Android P DP5),此版本为开发者最后一个预览版本,也预示着Android P正式版即将与大家见面. 为保证开发者在正式版本来临前做 ...
- 谈谈 epmd
在<Erlang/OTP 并发编程实战>中,对 epmd 有如下描述: epmd 代表 Erlang 端口映射守护进程(Erlang Port Mapper Daemon). 每启动一个 ...
- TP3.2 引入微信类
首先建立一个入口IndexController.php文件 <?php namespace Home\Controller; use Think\Controller; use Com\Wech ...
- 第一百九十八节,jQuery EasyUI,ProgressBar(进度条)组件
jQuery EasyUI,ProgressBar(进度条)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 ProgressBar(进度条) ...