echarts初探
最近经常看到echarts,觉得很有意思,并且这个库是百度开发的,目前来说使用的也很广泛,包括百度、阿里、腾讯、网易、小米、新浪、华为、联想、美团等一大批一线互联网公司在使用,且github上的star数也有2万多了,还是挺不错的。
echarts是一个纯JavaScript图标库,可以流畅的运行在PC和移动端,兼容性也不错,底层依赖的时canvas类库ZRender,它可以提供生动、直观、可定制的数据可视化图表。具体来说,可以提供常规的折线图、散点图、柱状图、饼图、K线图,地理数据可视化的地图、热力图、线图等等。 且Echarts3开始独立出了“坐标系”的概念,支持直角坐标系、极坐标系、地理坐标系等。 且对于流量非常珍贵的移动端的文件体积做了优化,且可以在移动端缩放、平移等等。且借助canvas的能力,可以在散点图中轻松展现上万甚至上十万的数据。且其特效绚丽。
使用Echarts很简单,如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>echarts</title>
<script type="text/javascript" src="./echarts.js"></script>
</head>
<body>
<div id="main" style="width: 700px; height: 300px;"></div>
<script>
var myChar = echarts.init(document.getElementById('main'), 'light');
var option = {
title: {
text: '宝宝的抖音喜欢的个数变化'
},
legend: {
data: ['数量']
},
xAxis: {
data: ['第一次', '第二次', '第三次', '第四次', '第五次', '第六次', '第七次',]
},
yAxis: {},
series: [{
name: '数量',
type: 'bar',
data: [, , , , , , ],
}],
// 全局样式设置
backgroundColor: 'pink',
textStyle: {
color: 'black'
},
// 这里的itemStyle中的item在这个例子中就是每一个柱状图,而不是整个图
itemStyle: {
color: 'yellow', // 柱状图的颜色
shadowBlur: ,
shadowOffsetX: ,
shadowOffsetY: ,
shadowColor: 'red',
emphasis: {
color: 'green',
shadowBlur: ,
shadowColor: 'black'
}
},
}
myChar.showLoading();
setTimeout(function () {
myChar.setOption(option);
myChar.hideLoading();
}, ); </script>
</body>
</html>
即这里我们先写一个div用于容纳这个canvas,接下来,我们使用echarts.init函数进行初始化,第一个参数接受的的是一个DOM,第二个参数接受的是主题配置,如'light'或'dart'。
接下来,我们就可以写一个配置了,这个配置中有title、legend、xAxis、yAxis、series,值得注意的是,这里的legend的数据要和series中的数据一一对应。另外,我们还可以对整个图标的样式做出定义。最后我们只要setOption即可。
注意,数据是获取到的,有时为了不让用户等待,我们可以用showLoading提示用户很快就会加载,这样的用户体验会更好一些。
但是,仅仅从上面的例子中,我们就可以发现一个问题:legend、坐标轴和series中的数据一般是从后端获取到的,所以,如果按照这种写法显然会严重降低效率,所以,Echarts 4中使用了dataset来简化操作。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>echarts</title>
<script type="text/javascript" src="./echarts.js"></script>
</head>
<body>
<div id="main" style="width: 700px; height: 300px;"></div>
<script>
var myChar = echarts.init(document.getElementById('main'), 'light');
var option = {
title: {
text: '宝宝的抖音喜欢的个数变化'
},
legend: {
data: ['数量']
},
dataset: {
source:[
['product', '数量'],
['第一次', ],
['第二次', ],
['第三次', ],
['第四次', ],
['第五次', ],
['第六次', ],
['第七次', ]
]
},
xAxis: {
type: 'category'
},
yAxis: {},
series: [
{type: 'bar'},
],
// 全局样式设置
backgroundColor: 'pink',
textStyle: {
color: 'black'
},
// 这里的itemStyle中的item在这个例子中就是每一个柱状图,而不是整个图
itemStyle: {
color: 'yellow', // 柱状图的颜色
shadowBlur: ,
shadowOffsetX: ,
shadowOffsetY: ,
shadowColor: 'red',
emphasis: {
color: 'green',
shadowBlur: ,
shadowColor: 'black'
}
},
}
myChar.showLoading();
setTimeout(function () {
myChar.setOption(option);
myChar.hideLoading();
}, ); </script>
</body>
</html>
可以看到,我们这里使用了dataset,然后就可以将之前xAxis和series的内容全部放在这个dataset里,尤其是数据量比较大的时候,这种方法更为方便。
另外,Echarts中还是一个是dataZoom组件,即可以对图表的X轴进行zoom,添加如下代码即可:
dataZoom: [
{
type: 'slider',
start: ,
end:
}
],
因为在前端,表格也是需要和用户进行交互的,所以Echart也支持常规的事件,比如:click、dbclick、mousedown、mousemove、mouseup、mouseover、mouseout等。
      myChar.on('click', function (params) {
        alert((params.data[] + ': ').concat(params.data[]))
      });
全部代码如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>echarts</title>
<script type="text/javascript" src="./echarts.js"></script>
</head>
<body>
<div id="main" style="width: 700px; height: 300px;"></div>
<script>
var myChar = echarts.init(document.getElementById('main'), 'light');
var option = {
title: {
text: '宝宝的抖音喜欢的个数变化'
},
legend: {
data: ['数量']
},
dataset: {
source:[
['product', '数量'],
['第一次', ],
['第二次', ],
['第三次', ],
['第四次', ],
['第五次', ],
['第六次', ],
['第七次', ]
]
},
xAxis: {
type: 'category'
},
yAxis: {},
dataZoom: [
{
type: 'slider',
start: ,
end:
}
],
series: [
{type: 'bar'},
],
// 全局样式设置
backgroundColor: 'pink',
textStyle: {
color: 'black'
},
// 这里的itemStyle中的item在这个例子中就是每一个柱状图,而不是整个图
itemStyle: {
color: 'yellow', // 柱状图的颜色
shadowBlur: ,
shadowOffsetX: ,
shadowOffsetY: ,
shadowColor: 'red',
emphasis: {
color: 'green',
shadowBlur: ,
shadowColor: 'black'
}
},
}
myChar.showLoading();
setTimeout(function () {
myChar.setOption(option);
myChar.hideLoading();
}, ); myChar.on('click', function (params) {
alert((params.data[] + ': ').concat(params.data[]))
}); </script>
</body>
</html>
选择使用canvas或者是svg进行渲染
我们之前提到了使用canvas渲染和svg渲染的不同,而使用Echarts配置何种渲染引擎也是非常简单的,如下所示:
 var myChar = echarts.init(document.getElementById('main'), 'light', {renderer: 'svg'});
即我们只需要添加第三个参数 {renderer: 'svg'}这样就使用了svg进行渲染了。

参考文章:Echarts
echarts初探的更多相关文章
- echarts初探:了解模块化
		
什么是echarts?这是官网:http://echarts.baidu.com/ 简单的说就是百度提供的一些画图表的库,用它你可以简便的画出一些你想要的图表效果. 虽然蛮好用的,但对于不知道模块化的 ...
 - 初探百度F.I.S — 由工具到解决方案
		
1. 前言 阅兵放假三天,我哪儿也没去,宅着看了一些东东:git命令行.svn命令以及下面的主角——百度FIS.对看过的git.svn的命令也做了一些总结,请参见:<git命令学习笔记>和 ...
 - 一起来玩echarts系列(一)------箱线图的分析与绘制
		
一.箱线图 Box-plot 箱线图一般被用作显示数据分散情况.具体是计算一组数据的中位数.25%分位数.75%分位数.上边界.下边界,来将数据从大到小排列,直观展示数据整体的分布情况. 大部分正常数 ...
 - Webstorm+Webpack+echarts构建个性化定制的数据可视化图表&&两个echarts详细教程(柱状图,南丁格尔图)
		
Webstorm+Webpack+echarts ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(I ...
 - ASP.NET MVC5+EF6+EasyUI 后台管理系统(67)-MVC与ECharts
		
系列目录 ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fire ...
 - echarts+php+mysql 绘图实例
		
最近在学习php+mysql,因为之前画图表都是直接在echart的实例demo中修改数据,便想着两相结合练习一下,通过ajax调用后台数据画图表. 我使用的是echart3,相比较第二版,echar ...
 - 数据图表插件Echarts(一)
		
一.引言 最近做一个智慧城市项目,项目中需要图表和报表进行数据分析,从网上找了很多,最后找到了百度开放的echarts,一个很强大的插件. 二.介绍 ECharts,缩写来自Enterprise Ch ...
 - ECharts数据图表系统? 5分钟上手!
		
目录: 前言 简介 方法一:模块化单文件引入(推荐) 方法二:标签式单文件引入 [前言] 最近在捣鼓各种插件各种框架,发现这个ECharts还是比较不错的,文档也挺全的,还是中文的,给大家推荐一下. ...
 - 初探领域驱动设计(2)Repository在DDD中的应用
		
概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...
 
随机推荐
- mysql学习之路_字段类型与属性2
			
字段属性: 主键,唯一键,自增长. 主键: Primary key 主要的键,一张表只能有一个字段能使用对应的键,用来唯一约束该字段里面的数据不能重复,称之为主见. 一张表最多只有一个主键. 增加主键 ...
 - 链家web前端面试
			
共有三轮面试,每个面试官的第一个问题都是:介绍一个你觉着比较出彩的项目 第一轮面试: 因为公司项目没什么亮点,很传统的pc端,美女面试官就说让讲一下我用react的私人项目; 问了很多都是关于reac ...
 - 10-padding(内边距)
			
padding padding:就是内边距的意思,它是边框到内容之间的距离 另外padding的区域是有背景颜色的.并且背景颜色和内容的颜色一样.也就是说background-color这个属性将填充 ...
 - poj2774 sa模版
			
学习地址:http://blog.csdn.net/yxuanwkeith/article/details/50636898 #include<iostream> #include< ...
 - jQuery如何获取元素及选择器的参考
			
获取元素 Jquery当中几乎所有的功能.选择.事件处理等都用到了这个函数.通常用来获取元素,获取到的元素都会被存储为jQuery对象. 例如: 先设定一个id为aaa的div <body> ...
 - PAT甲级 1127. ZigZagging on a Tree (30)
			
1127. ZigZagging on a Tree (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...
 - Hdu1796 How many integers can you find                                                                                            2017-06-27 15:54             25人阅读              评论(0)              收藏
			
How many integers can you find Time Limit : 12000/5000ms (Java/Other) Memory Limit : 65536/32768K ...
 - Java 是值传递
			
本质:传值/传地址值 以下搬运自知乎大佬 作者:Intopass链接:https://www.zhihu.com/question/31203609/answer/50992895来源:知乎著 ...
 - kafka eagel的使用
			
sql语句eq: select * from "ke_test_topic" where "partition" in (0,1,2) limit 100 官网 ...
 - ASP.NET MVC Bundles 合并压缩(js css)
			
Chrome浏览器有并发的Http请求限制,Bundles可以将多个JS文件合并成一个文件并进行压缩,最终得到一个单文件的压缩包. 第一步:BundleConfig public class Bund ...