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中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...
随机推荐
- IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA环境搭建,JPA注解@ManyToOne使用详情;JPA外键设置
一.数据库原型 数据库模型如图所示,而现在需要根据数据库模型,建立对应的实体类,这在项目重构老数据库,采用新的框架重构上应该是比较常见的. 数据库脚本如下: CREATE TABLE `bomsub` ...
- JAVA-部署-摘
一.下载 J2SDK下载http://java.sun.com/j2se/1.4.2/download.html 下载版本是j2sdk-1_4_2_08 ECLIPSE下载http://www.ec ...
- Fortran编译器之一GUN Fortran安装(Windows XP)
最近研究GIS算法,需要用到Fortran语言.在网上找了一下发现一个开源的软件GUN Fortran编译器.当然既然是编译器,就是编译出程序的,但是编辑器不包括在内.编辑器可以用Text记事本,或者 ...
- c语言:辗转相除法求最大公约数、最小公倍数
辗转相除法,又称欧几里得算法.两个正整数a和b(a>b),它们的最大公约数等于余数c和较小的数b之间的最大公约数.最小公倍数=两数之积/最大公约数 #include <stdio.h> ...
- java类与继承(转载)
关于java的类与继承面链接是一个网友总结的,还有列子我个人觉得很详细 固拿来收藏,需要的朋友可从这里访问: http://www.cnblogs.com/dolphin0520/p/3803432. ...
- hide handkerchief
Problem Description The Children’s Day has passed for some days .Has you remembered something happen ...
- Codeforces820A Mister B and Book Reading 2017-06-28 09:38 67人阅读 评论(0) 收藏
A. Mister B and Book Reading time limit per test 2 seconds memory limit per test 256 megabytes input ...
- HDU1025贫富平衡
做01背包做到的这个LIS,常见的n2会超时,所以才有nlogn可行 先来介绍一下n2 dp[i] 表示该序列以a[i]为结尾的最长上升子序列的长度 所以第一层循环循环数组a,第二层循环循环第i个元素 ...
- php excel
项目中需要把excel转为索引数组,不输出key 只说下普世技巧 找了php excel插件 发现需要createReader方法,在sublime中search,可以搜索文件内容,找到使用creat ...
- CSS 基础 优先级 选择器 继承
1.样式优先级 (内联样式)Inline style > (内部样式)Internal style sheet > (外部样式)External style ...