1.Echarts-介绍
常见的数据可视化库:
- D3.js 目前 Web 端评价最高的 Javascript 可视化工具库(入手难)
- ECharts.js 百度出品的一个开源 Javascript 数据可视化库
- Highcharts.js 国外的前端数据可视化库,非商用免费,被许多国外大公司所使用
- AntV 蚂蚁金服全新一代数据可视化解决方案 等等
- Highcharts 和 Echarts 就像是 Office 和 WPS 的关系
ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
大白话:
官网地址:https://www.echartsjs.com/zh/index.html
ECharts 包含了以下特性:
- 丰富的可视化类型 : 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。
- 多种数据格式无需转换直接使用 : 内置的 dataset 属性(4.0+)支持直接传入包括二维表,key-value 等多种格式的数据源,此外还支持输入 TypedArray 格式的数据。
- 千万数据的前端展现 : 通过增量渲染技术(4.0+),配合各种细致的优化,ECharts 能够展现千万级的数据量。
- 移动端优化 : 针对移动端交互做了细致的优化,例如移动端小屏上适于用手指在坐标系中进行缩放、平移。 PC 端也可以用鼠标在图中进行缩放(用鼠标滚轮)、平移等。
- 多渲染方案,跨平台使用 : 支持以 Canvas、SVG(4.0+)、VML 的形式渲染图表。
- 深度的交互式数据探索 : 提供了 图例、视觉映射、数据区域缩放、tooltip、数据刷选等开箱即用的交互组件,可以对数据进行多维度数据筛取、视图缩放、展示细节等交互操作。
- 多维数据的支持以及丰富的视觉编码手段 : 对于传统的散点图等,传入的数据也可以是多个维度的。
- 动态数据 : 数据的改变驱动图表展现的改变。
- 绚丽的特效 : 针对线数据,点数据等地理数据的可视化提供了吸引眼球的特效。
- 通过 GL 实现更多更强大绚丽的三维可视化 : 在 VR,大屏场景里实现三维的可视化效果。
- 无障碍访问(4.0+) : 支持自动根据图表配置项智能生成描述,使得盲人可以在朗读设备的帮助下了解图表内容,让图表可以被更多人群访问!
2.使用步骤
Section titled “2.使用步骤”1.引入echarts 插件文件到html页面中
2.准备一个有宽、高的DOM容器
3.初始化echarts实例对象
4.指定配置项和数据(option)
5.将配置项设置给echarts实例对象
-
1.引入echarts.min.js 插件、flexible.js、jquery.js、文件到html页面中 下载: :下载 - Apache ECharts
-
2.准备一个有宽、高的DOM容器
-
3.初始化echarts实例对象
-
4.指定配置项和数据(option)
-
5.将配置项设置给echarts实例对象
整体的代码如下:
3.三种引入方式
Section titled “3.三种引入方式”3.1使用script标签引入
Section titled “3.1使用script标签引入”我们可以在直接下载 echarts.min.js 并用 <script> 标签引入。
另外,开发环境下可以使用源代码版本 echarts.js 并用 <script> 标签引入,源码版本包含了常见的错误提示和警告。
我们也可以在 ECharts 的官网上直接下载更多丰富的版本,包含了不同主题跟语言,下载地址:https://echarts.apache.org/zh/download.html。
这些构建好的 echarts 提供了下面这几种定制:
- 完全版:
echarts/dist/echarts.js,体积最大,包含所有的图表和组件,所包含内容参见:echarts/echarts.all.js。 - 常用版:
echarts/dist/echarts.common.js,体积适中,包含常见的图表和组件,所包含内容参见:echarts/echarts.common.js。 - 精简版:
echarts/dist/echarts.simple.js,体积较小,仅包含最常用的图表和组件,所包含内容参见:echarts/echarts.simple.js。


使用例子如下:
3.2使用CDN方法
Section titled “3.2使用CDN方法”以下推荐国外比较稳定的两个 CDN,国内还没发现哪一家比较好,目前还是建议下载到本地。
- Staticfile CDN(国内) : https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js
- jsDelivr:https://cdn.jsdelivr.net/npm/echarts@4.3.0/dist/echarts.min.js。
- cdnjs : https://cdnjs.cloudflare.com/ajax/libs/echarts/4.3.0/echarts.min.js
具体例子如下:
3.3npm方法
Section titled “3.3npm方法”第三种是通过NPM方式实现。
需要注意的是,用NPM安装EChart,NPM的版本必须大于3.0。
1.查看npm版本:npm
2.升级或安装cnpm:npm install cnpm -g
3.升级npm:cnpm install npm -g
4.通过cnpm获取echarts:cnpm install echarts —save
安装完成后 ECharts 和 zrender 会放在 node_modules 目录下。

然后,我们可以直接在项目代码中使用 require(‘echarts’) 来使用。
例子如下:
4.基础配置
Section titled “4.基础配置”可查询官方手册:Documentation - Apache ECharts
这是要求同学们知道以下配置每个模块的主要作用干什么的就可以了
需要了解的主要配置:
seriesxAxisyAxisgridtooltiptitlelegendcolor
-
series
- 系列列表。每个系列通过
type决定自己的图表类型 - 大白话:图标数据,指定什么类型的图标,可以多个图表重叠。
- 系列列表。每个系列通过
-
xAxis:直角坐标系 grid 中的 x 轴
- boundaryGap: 坐标轴两边留白策略 true,这时候刻度只是作为分隔线,标签和数据点都会在两个刻度之间的带(band)中间。
-
yAxis:直角坐标系 grid 中的 y 轴
-
grid:直角坐标系内绘图网格。
-
title:标题组件
-
tooltip:提示框组件
-
legend:图例组件
-
color:调色盘颜色列表
-
stack:数据堆叠,同个类目轴上系列配置相同的stack值后 后一个系列的值会在前一个系列的值上相加。
4.1title标题
Section titled “4.1title标题”title:标题
- 文字样式 textStyle
- 标题边框
- borderWidth
- borderColor
- borderRadius
- 标题位置
- top
- bottom
- left
- right
4.2tooltip提示
Section titled “4.2tooltip提示”tooltip:提示
- 触发类型:trigger
- item
- axis
- 触发时机:triggerOn
- mousemove
- click
- 格式化:formatter
- 模板字符串
- 回调函数
4.3toolbox工具按钮
Section titled “4.3toolbox工具按钮”toolbox:工具按钮
- saveAsImage:导出图片
- dataView:数据视图
- restore:重置
- dataZoom:区域缩放
- magicType:切换图表类型
4.4legend图例筛选
Section titled “4.4legend图例筛选”legend:图例筛选
注释:以下为直角坐标系中的常用配置
Section titled “注释:以下为直角坐标系中的常用配置”4.5grid网格
Section titled “4.5grid网格”网格 grid
4.6axis坐标轴
Section titled “4.6axis坐标轴”坐标轴 axis
- 分为 xAxis(x轴),yAxis(y轴)
- 轴类型 type
- value:数值轴,自动会从目标数据中读取数据
- category:类目轴,该类型必须通过data设置类目数据
- 显示位置 position
- xAxis:可以取值为top或者bottom
- yAxis:可以取值为left或者right
4.7dataZoom区域缩放
Section titled “4.7dataZoom区域缩放”区域缩放 dataZoom
- 用于区域缩放,对数据范围过滤,x轴y轴等候可以拥有
- dataZoom是一个数组,可以配置多个缩放区域
- 类型 type
- slider:滑块
- inside:内置,通过鼠标滚轮
- 指明作用轴
- xAxisIndex
- yAxisIndex
- 指明初始缩放情况
- start:起始百分比
- end:终止百分比
4.8series中的type类型
Section titled “4.8series中的type类型”系列列表
每个系列通过 type 决定自己的图表类型:
每个系列通过 type 决定自己的图表类型:
- type: ‘bar’:柱状/条形图
- type: ‘line’:折线/面积图
- type: ‘pie’:饼图
- type: ‘scatter’:散点(气泡)图
- type: ‘effectScatter’:带有涟漪特效动画的散点(气泡)
- type: ‘radar’:雷达图
- type: ‘tree’:树型图
- type: ‘treemap’:树型图
- type: ‘sunburst’:旭日图
- type: ‘boxplot’:箱形图
- type: ‘candlestick’:K线图
- type: ‘heatmap’:热力图
- type: ‘map’:地图
- type: ‘parallel’:平行坐标系的系列
- type: ‘lines’:线图
- type: ‘graph’:关系图
- type: ‘sankey’:桑基图
- type: ‘funnel’:漏斗图
- type: ‘gauge’:仪表盘
- type: ‘pictorialBar’:象形柱图
- type: ‘themeRiver’:主题河流
- type: ‘custom’:自定义系列
常见类型
| 类型 | 配置 |
|---|---|
| 柱状图 bar | seriess[].type、xAxis、yAxis、markPoint、markLine、label、barWidth |
| 折线图 line | seriess[].type、xAxis、yAxis、markPoint、markLine、markArea、smooth、lineStyle、areaStyle、boundaryGap、scale |
| 散点图 scatter | seriess[].type、xAxis、yAxis、symbolSize、itemStyle、showEffectOn、rippleEffect、scale |
| 饼图 pie | seriess[].type、label、radius、roseType、selectedMode、selectedOffset |
| 地图 map | seriess[].type、geo、map、roam、zoom、center、label、GeoIndex、visualMap、coordinateSystem |
| 雷达图 radar | seriess[].type、radar、indicator、label、areaStyle、shape |
| 仪表盘 gauge | seriess[].type、max、min、itemStyle |
常见配置项
| 配置项 | 具体配置项 |
|---|---|
| grid | show、borderWidth、borderColor、left、top、right、bottom、width、height |
| axis | type、data、position |
| dataZoom | type、xAxisIndex、yAxisIndex、start、end |
这三个只适合直角坐标系(柱状图 bar**、折线图** line**、散点图** scatter**)**
| 配置项 | 具体配置项 |
|---|---|
| title | textStyle、borderWidth、borderColor、borderRadius、left、top、right、bottom |
| tooltip | trigger、triggerOn、formatter |
| toolbox | feature、saveAsImage、dataView、restore、dataZoom、magicType |
| legend | data |
使用场景
- 柱状图:柱状图描述的是分类数据,呈现的是每一一个分类中有多少
- 折线图:折线图常用来分析数据随时间的变化趋势
- 散点图:散点图可以帮助我们推断出不同维度数据之间的相关性
- 饼图:饼图可以很好地帮助用户快速了解不同分类的数据的占比情况
- 地图:地图主要可以帮助我们从宏观的角度快速看出不同地理位置上数据的差异
- 雷达图:雷达图可以用来分析多个维度的数据与标准数据的对比情况。
- 仪表盘:仪表盘可以更直观的表现出某个指标的进度或实际情况
4.10案例
Section titled “4.10案例”上面代码效果如图显示:
