github地址:https://github.com/lisongyu/echarts-learnjavascript
/** * 添加多个图例,多条数据即可实现 */ legend: { data:['进口量','出口量']//多条数据 } { "name":"进口量", "type":"bar", "data":[5, 20, 40, 10, 10, 20]//X轴对应的数值 }, { "name":"出口量", "type":"bar", "data":[50, 120, 10, 70, 40, 62] }
参考页面 morelegend.htmljava
/** * 添加平均值,最大值最小值 */ //最大值与最小值 markPoint : { data : [ {type : 'max', name: '最大值'}, {type : 'min', name: '最小值'} ] }, //平均值 markLine : { data : [ {type : 'average', name: '平均值'} ] }
参考页面 average.htmljquery
/** * 折线与柱状图混合 */ yAxis : [ { type : 'value' }, //第二个纵轴坐标 { type : 'value', name:'%' } ], //设置数据 series : [ { "name":"今年国内生产总值", "type":"bar", "data":[5, 20, 40, 10, 10, 20]//X轴对应的数值 }, { "name":"去年比例", "type":"line", //结合 yAxisIndex: 1,//Y轴第二坐标的索引 "data":[50, 80, 10, 70, 40, 62]//X轴对应的数值 } ]
参考页面 linebar.htmlgit
/** * 需结合jquery */ $(window).resize(function () { myChart.resize(option); });
要制做属于本身的图表首先一点就要应用到Ajax技术,由于每一个图表中都有数据,而利用Ajax能够将数据与表现想分离,使工做进行模块化,便于协做开发。github
根据option可知有三项数据可变分别以下ajax
legend: { data:['销量,产量']}, xAxis : [{type : 'category',//种类 data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]], series : [{ "name":"销量", "type":"bar", "data":[5, 20, 40, 10, 10, 20] }, { "name":"产量", "type":"bar", "data":[5, 80, 50, 20, 10, 20] } ]
所涉及的知识点sql
1.了解eval()方法 参考 eval()基础使用。
2.使用eval()来解析数据。json
了解上述知识点开始实现一个本身的图表api
1.一组json数据
{ "name":["销量","产量"], "data":[ [5, 20, 40, 10, 10, 20], [50, 80, 20, 15, 20, 24] ], "xlist":["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] }
2.运用Ajax获取数据。
var sql='json/data.json'; var request = $.ajax({ url: sql, type: "get", dataType:"json", cache: false }); request.done(function(data) { //获取数据后续操做 });
3.将数据与配置项相结合
var series = eval(data); //配置的名字等于由ajax获取的名字,坐标为获取的坐标 config.legend.data=series.name; config.xAxis[0].data=series.xlist; //设置数据 //根据每个图例生成各组数据(思想即一个图例的索引对应相应数据的索引) $(series.name).each(function(index,value){ var everyData=series.data[index]; config.series.push(template(value,everyData));}); //生成图表 myChart.setOption(config);
参考页面 ajacecharts.html
你们已经可以用ajax生成图表,但考虑到大量图表的问题,这就迫使咱们不得不对其进行规划。
1.将javascript从html中剔除,在body中添加data-chart属性。
2.根据不一样的data-chart值加载不一样的javascript代码。
require.config({ paths: { echarts: 'echarts-2.1.8/build/dist', jquery:'js/jquery-1.7.2.min' } //用paths来映射配置项echarts-2.1.8/build/dist 用echarts代替 }); //获取body标签 var bodyElem = document.getElementsByTagName("body")[0]; //获取bodyElem属性data-chart的值 var chartName = bodyElem.getAttribute('data-chart'); //根据不一样的值加载不一样的javascript require(['js/'+chartName]);
3.根据data-chart值命名javascript页面。
参考页面 ajax.html
简要介绍如下几个专属名词
1.时间段(1997-2012)
2.时间点(1997)
3.单选(选择单一项,如复选框中只选择一个选项)
4.多选(选择多项,如复选框中选择多个选项)
用插件的方式封装方法进行调用。