echarts 学习之路

学习思路

  1. 初识echarts
  2. 编写自己的echarts图表
  3. 根据需求编写工作中的echarts图表[进阶篇]

github地址:https://github.com/lisongyu/echarts-learn


初识echarts

echarts官方文档

  1. 实例

    1. 入门教程
    2. 主要实例分析(折线为主,柱状次之,其他辅助)
    3. 主题学习
  2. 文档

    1. 简介
    2. 名词解释
    3. 图表类型
    4. 引入ECharts
    5. 自定义构建echarts单文件
    6. 初始化
    7. 实例方法
    8. 选项
    9. 图数据表示
    10. 多级控制设计
  3. 知识点总结

添加多条 图例多条数据
/**
* 添加多个图例,多条数据便可实现
*/
legend: {
data:['进口量','出口量']//多条数据
}
{
"name":"进口量",
"type":"bar",
"data":[5, 20, 40, 10, 10, 20]//X轴对应的数值
},
{
"name":"出口量",
"type":"bar",
"data":[50, 120, 10, 70, 40, 62]
}

参考页面 morelegend.html

添加平均值,最大值最小值
/**
* 添加平均值,最大值最小值
*/
//最大值与最小值
markPoint : {
data : [
{type : 'max', name: '最大值'},
{type : 'min', name: '最小值'}
]
},
//平均值
markLine : {
data : [
{type : 'average', name: '平均值'}
]
}

参考页面 average.html

折线与柱状图混合
/**
* 折线与柱状图混合
*/
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.html

响应式
/**
* 需结合jquery
*/
$(window).resize(function () {
myChart.resize(option);
});

编写自己的echarts图表

要制作属于自己的图表首先一点就要应用到Ajax技术,因为每个图表中都有数据,而利用Ajax可以将数据与表现想分离,使工作进行模块化,便于协作开发。

根据option可知有三项数据可变分别如下

 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]
}
]

所涉及的知识点

  1. Ajax技术(可以去官网了解)
  2. Json数据格式
  3. eval()如何使用
  4. each()如何使用
eval()如何使用?

1.了解eval()方法 参考 eval()基础使用

2.使用eval()来解析数据

each()如何使用? 请参考 each()方法的使用

了解上述知识点开始实现一个自己的图表

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


根据需求编写工作中的echarts图表

大家已经能够用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

根据不同需求设计不同方法在data-chart值的对应的javascript页面进行调用,根据时间和选择内容的多少主要分为以下4大需求。

简要介绍以下几个专属名词

1.时间段(1997-2012)

2.时间点(1997)

3.单选(选择单一项,如复选框中只选择一个选项)

4.多选(选择多项,如复选框中选择多个选项)

思路分析:

用插件的方式封装方法进行调用。

echarts学习(上)的更多相关文章

  1. echarts学习总结

    ECharts学习总结使用步骤1 引入ECharts <script src="echarts.min.js"></script>2 绘制一个简单的图表 为 ...

  2. echarts学习笔记(一)

    echarts学习笔记(一) echarts开发步骤 创建一个新的html文件 在html文件head头部信息中导入echarts 声明一个容器(可以理解为画布),用于存放echarts 实例化ech ...

  3. c语言学习上的思考与心得

    由于这段时间在c语言的学习中,表现的很努力并且完成作业态度认真,所以得到了老师奖励的小黄衫. 以下是我对于c语言的学习感受与心得. 学习感受与心得 我选择计算机的这个专业,是因为我对计算机的学习很有兴 ...

  4. Echarts 地图上显示数值

    Echarts 地图上展示数值,效果如下: 上代码:关键代码用红色 series: [ { //name: '香港18区人口密度', type: 'map', mapType: 'jiangsu', ...

  5. Echarts学习记录——如何去掉网格线及网格区域颜色

    关键属性 splitLine和splitArea,可以设置相关的属性 示例代码 <!DOCTYPE html> <html lang="en"> <h ...

  6. Echarts学习记录——如何给x轴文字标签添加事件

    Echarts学习记录——如何给x轴文字标签添加事件 关键属性 axisLabel下属性clickable:true 并给图表添加单击事件 根据返回值判断点击的是哪里 感觉自己的方法有点变扭,有更好办 ...

  7. ECharts学习指南

    1.了解ECharts ECharts简单说就是互联网开发程序过程中,后台数据库用以实现数据到图形的映射的一个插件. 具体来说一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在PC和 ...

  8. ECharts学习总结(二)-----图表组件漏斗图(funnel)

    今天在学习ECharts时,想要在ECharts图表的原生态Demo中抠出漏斗图,却不知如何下手,经过一番研究,特总结如下: 首先我们需要这样做 1.拷贝出两个js文件:esl.js 和echarts ...

  9. Echarts学习总结(一)-----柱状图

    简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,基于[HTML5]Canvas (ZRender),纯Javascript图表库,是百度的一个开源的数据可视化工具,业 ...

随机推荐

  1. 11、V4L2摄像头获取单幅图片测试程序

    #根据网上常见的一个测试程序修改而来 by rockie cheng#include <stdio.h>#include <stdlib.h>#include <stri ...

  2. FOJ (FZU) 1476 矩形的个数 排列组合。

    http://acm.fzu.edu.cn/problem.php?pid=1476  Problem Description 在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1* ...

  3. 阿里云服务器安全设置 分类: B3_LINUX 2014-07-24 11:10 5197人阅读 评论(1) 收藏

    1.开启云盾所有服务 2.通过防火墙策略限制对外扫描行为 请您根据您的服务器操作系统,下载对应的脚本运行,运行后您的防火墙策略会封禁对外发包的行为,确保您的主机不会再出现恶意发包的情况,为您进行后续数 ...

  4. dmalloc在嵌入式的开发板上的应用

    下面是我实际在开发环境里面做的dmalloc移植时候的一些随笔 配置PC的dmalloc环境1. 首先把源码包打开,进入dmalloc文件夹2. ./configure 配置Makefile,我是加了 ...

  5. 无法为数据库中的对象分配空间,因为'PRIMARY'文件组已满

    用SQL Server2012,做数据保存时出错,错误信息:无法为数据库'***'中的对象'***'分配空间,因为'PRIMARY'文件组已满.请删除不需要的文件.删除文件组中的对象.将其他文件添加到 ...

  6. AngularJs压缩时须要注意的事项

    因为AngularJS是通过控制器构造函数的參数名字来判断依赖服务名称的.所以假设你要压缩控制器的JS代码.它全部的參数也同一时候会被压缩,这时候依赖注入系统就不能正确的识别出服务了. 假如我们的Co ...

  7. 辛星浅析yaf框架中的类的自己主动载入问题

    因为公司非常多项目都是基于yaf的,而非常多刚接触yaf的朋友问的第一个问题就是:yaf的自己主动载入是依照什么规则来的. 鉴于此.于是我特别开了一篇博文来记录一下. 首先在yaf中.models文件 ...

  8. HDU 4870 Rating 高斯消元法

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4870 题意:用两个账号去參加一种比赛,初始状态下两个账号都是零分,每次比赛都用分数低的账号去比赛.有P的概 ...

  9. noip刷题记录 20170818

    天天爱跑步 lca + 树上差分 #include<iostream> #include<cstdio> #include<cstdlib> #include< ...

  10. scala map的常用操作

    package cn.scala_base /** * map常用操作 */ object Map { def main(args: Array[String]): Unit = { //1.不可变m ...