快速上手 Echarts
最近使用到了 百度的 Echarts 数据可视化工具,这里简单介绍如何快速上手。
一.下载
这里选择目前最新版本,4.2.1
地址:https://github.com/apache/incubator-echarts/archive/4.2.1.zip
在解压出来的文件夹里的 dist 目录里可以找到最新版本的 echarts 库。
二.上手
不管你使用那种 js 语言,要想实现功能,最核心的就是 下面的三个步骤。
引入 Echarts 之前,要引入 jquery 库
1.引入 ECharts
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!-- 引入 ECharts 文件 -->
<script src="echarts.min.js"></script>
</head>
</html>
2.准备容器
<body>
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main" style="width: 600px;height:400px;"></div>
</body>
3.绘制图表
通过 echarts.init 方法初始化一个 echarts 实例并通过 setOption 方法生成一个简单的柱状图,下面是完整代码。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts</title>
<!-- 引入 echarts.js -->
<script src="echarts.min.js"></script>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: 'ECharts 入门示例'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
最终效果

三、使用
到这里,你可以在自己的项目中实现了简单的引入,但是具体实现还要根据自己的业务需求进行定制。
这是官方提供的几个简单的实例:https://echarts.baidu.com/examples/,可以根据需求,选择不同的展示类型。
这些例子都可以点开,在线编辑,实时展示在线修改效果。
1.数据异步加载
入门示例中的数据是在初始化后setOption中直接填入的,但是很多时候可能数据需要异步加载后再填入。ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就行。
先设置完其它的样式,显示一个空的直角坐标轴,然后获取数据后填入数据。
不管使用那种方式,最关键的的就是 一定要等到 <div id="main" style="width: 600px;height:400px;"></div> 渲染完成!!
方式一:
var myChart = echarts.init(document.getElementById('main'));
// 显示标题,图例和空的坐标轴
myChart.setOption({
title: {
text: '异步数据加载示例'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
data: []
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: []
}]
});
// 异步加载数据
$.get('data.json').done(function (data) {
// 填入数据
myChart.setOption({
xAxis: {
data: data.categories
},
series: [{
// 根据名字对应到相应的系列
name: '销量',
data: data.data
}]
});
});
方式二:
var myChart = echarts.init(document.getElementById('main'));
// 显示标题,图例和空的坐标轴
var option = {
title: {
text: '异步数据加载示例'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
data: []
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: []
}]
};
// 异步加载数据
$.get('data.json').done(function (data) {
// 填入数据,根据返回的data里面包含的内容设置
option.xAxis.data = data.categories;
option.series[0].data = data.data;
myChart.setOption(option);
});
注意:这里的 series 是一个数组,后台赋值的时候要注意数值的对应。
说明:x轴与 y轴 数据的对应,其实就是 option.xAxis.data 与 option.series[0].data 数值的对应,这两个数组的长度是一样的,数据也是一一对应的 比如:xAxis.data[0], 对应 series[0].data[0],只要后台对应好数据就可以了。
2.loading 动画
如果数据加载时间较长,一个空的坐标轴放在画布上也会让用户觉得是不是产生 bug 了,因此需要一个 loading 的动画来提示用户数据正在加载。
ECharts 默认有提供了一个简单的加载动画。只需要调用 showLoading 方法显示。数据加载完成后再调用 hideLoading 方法隐藏加载动画。
myChart.showLoading();
$.get('data.json').done(function (data) {
myChart.hideLoading();
myChart.setOption(...);
});
3.API
官方地址:https://www.echartsjs.com/api.html#echarts

init:创建一个 ECharts 实例,返回 echartsInstance,不能在单个容器上初始化多个 ECharts 实例。
getInstanceByDom :获取 dom 容器上的实例。
多次调用初始化代码时,可以获取容器实例,没有获取到,再初始化,防止初始多个实例。
var myChartPro = echarts.getInstanceByDom(document.getElementById('projectInvest'));
if(myChartPro === undefined ){
myChartPro = echarts.init(document.getElementById('projectInvest'));
}
4.配置项
https://www.echartsjs.com/option.html#title
上面代码的参数,都是可以在这里查到的,并且可以根据自己的需求定制。

常用配置:
导出图片,数据视图,折线 和 柱状图
toolbox: {
feature: {
saveAsImage: {
title:'导出'
},
dataView:{
readOnly:true
},
magicType: {
type: ['line', 'bar']
}
}
},
类似这样:

区域拖动 :分为内部(看不到滚动条)和 外部(如下)
dataZoom:[{
type:'slider',
minValueSpan:9,
maxValueSpan:19,
endValue:19
}],
类似这样:

x轴设置 :
interval :所有数据都显示 rotate:字体倾斜,防止重叠
xAxis: {
name:'名称',
data: [],
axisLabel:{
interval:0,
rotate:-30
}
},
类似这样:

四、总结
以上内容都可以在官网查到,上手一个新技术最快的就是参看官方文档,看不懂的可以再去搜索,加深理解。
这里贴 Echarts,常用的文档地址:
上手教程:https://www.echartsjs.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts
API:https://www.echartsjs.com/api.html#echarts
配置项:https://www.echartsjs.com/option.html#title
快速上手 Echarts的更多相关文章
- 基于Vue简易封装的快速构建Echarts组件 -- fx67llQuickEcharts
fx67llQuickEcharts A tool to help you use Echarts quickly! npm 组件说明 这本来是一个测试如何发布Vue组件至npm库的测试项目 做完之后 ...
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- 快速上手Unity原生Json库
现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手
原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- 快速上手seajs——简单易用Seajs
快速上手seajs——简单易用Seajs 原文 http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...
- Git版本控制Windows版快速上手
说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行.写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手. 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在 ...
- Objective-C快速上手
最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...
- Netron开发快速上手(二):Netron序列化
Netron是一个C#开源图形库,可以帮助开发人员开发出类似Visio的作图软件.本文继前文”Netron开发快速上手(一)“讨论如何利用Netron里的序列化功能快速保存自己开发的图形对象. 一个用 ...
随机推荐
- Python语言的简介
___________________________________________________________我是一条分割线__________________________________ ...
- 面试之mybatis和hibernate的区别
mybatis是支持普通SQL查询.存储过程和高级映射的优秀持久层框架.封装了 几乎所有的JDBC代码和参数的手工设置 ,以及结果集的检索: 封装了:1,获取连接,执行sql,释放连接. 2,sql的 ...
- PHP GD库---之微信朋友圈9张图
$item_pic = "img/item.jpg"; list($width, $height) = getimagesize($item_pic); $item_pic = i ...
- SPOJ QTREE6 Query on a tree VI 树链剖分
题意: 给出一棵含有\(n(1 \leq n \leq 10^5)\)个节点的树,每个顶点只有两种颜色:黑色和白色. 一开始所有的点都是黑色,下面有两种共\(m(1 \leq n \leq 10^5) ...
- Selenium WebDriver- 显式等待
推荐使用显示等待,元素出现就不会等待而继续执行了.节省时间. #encoding=utf-8 import unittest import time from selenium import webd ...
- python - 接口自动化测试实战 - case1 - 优化版
题目: 基于以下两个接口和数据完成接口自动化测试,并生成测试报告: '''登录 login='http://47.107.168.87:8080/futureloan/mvc/api/member/l ...
- PHP define() 定义常量
PHP define()函数定义了运行时的常量, 具体语法如下所示: (PHP 4, PHP 5, PHP 7) define — Defines a named constant bool defi ...
- 换一种思维看待PHP VS Node.js
php和javascript都是非常流行的编程语言,刚刚开始一个服务于服务端,一个服务于前端,长久以来,它们都能够和睦相处,直到有一天,一个叫做node.js的JavaScript运行环境诞生后,再加 ...
- LaTeX Hierarchical Tables
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/52692655 简单整理一下表格中的分级 ...
- Tyk-Hybrid模式安装—抽象方法论,重用它
最近,公司有计划运用API网关.那么,在经过权衡之后,使用了Tyk的Hybrid模式!现在环境没问题了,API调用也测通了.我得想想合并服务,监控API实时情况的东西.但在这个环境搭建的过程中,我目前 ...