本课时是课程的第二个模块,环境部署篇的第一个课时。在第一部分的基础理论篇,我向你介绍了数据可视化分析的概念定义、方法体系和关键技术。接下来,我会带你了解基于开源框架,如何部署数据可视化分析的开发环境,内容包括:图表组件、框架搭建和快速入门。

作为模块二的第一个课时,我们先来看看图表组件。

Echarts 简介

Echarts 是一个开源的免费的成熟的商业级图表可视化框架,是 Apache 开源社区的顶级项目之一,也是国内使用最多和最为广泛的可视化图表框架之一。 数据可视化图表框架并没有一个统一的行业标准,比较常见的有 D3、Highcharts 等,Echarts 因其图表丰富、主题多样美观大方、开源免费、文档资料健全,逐渐成为国内用户的首选,是事实上的行业标准。

Echarts 特性

Echarts 的特性,从实践者的视角而言,主要体现在图表类型、主题样式、源码开源、文档教程和技术社区这五个方面。

  • 图表类型丰富:ECharts 提供了常规的折线图、柱状图、散点图、饼图、K 线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘。Echarts 支持几乎所有的主流图表,并且支持图与图之间的混搭。图表类型的丰富程度,代表了图表可视化呈现能力的强弱,在这一点上,Echarts 表现得十分优异。

  • 主题样式美观:Echarts 提供了丰富的图表主题样式,并且提供了主题样式的定制和拓展能力。默认情况下,Echarts 支持两种主题:light 和 dark,其他样式需要手动下载,在配置后方可使用。

  • 源码开源免费:Echarts 遵循开源协议 Apache 2.0,可以免费应用到商业场景。这也是 Echarts 得到广泛应用的一个主要原因。

  • 文档教程完备:Echarts 具有丰富的用户文档资源,包括教程、案例等,这些文档可以有效地降低使用者的学习门槛。

  • 技术社区活跃:一个开源项目的技术社区活跃程度,一方面代表该项目的受欢迎程度,另一方面则代表该项目的生存状态。Echarts 的技术社区具有非常高的社区活跃度,说明 Echarts 项目欣欣向荣。

Echarts 官网

Echarts 官方网站的内容结构如下图所示:

Echarts 官方网站

Echarts 官方网站提供了完备的用户学习手册,包括文件导入、基础概念、图表使用、参数设置等。通过 Echarts 的官方文档,可以很快掌握 Echarts,这也是 Echarts 被广泛使用的原因之一。Echarts 官方用户学习手册页面截图如下图所示:

Echarts 官方教程

Echarts 官方网站还提供了丰富的案例教程,分为页面源码图表预览两项核心功能,可以作为 Echarts 各图表组件的配置参考。Echarts 案例教程页面截图如下图所示:

Echarts 案例教程

Echarts 官方网站提供的案例,囊括了全部的图表对象,通过这些案例,我们可以了解不同的可视化图表的配置参数,同时也可以预览其运行效果。以柱状图为例,其参数配置和运行效果如下所示:

上图中,左侧部分是页面图表对象的参数,右侧部分是该图表的预览效果。

通过这些案例,我们可以快速掌握各个图表的配置方法。同时,这些案例也可以通过下载按钮,直接下载到本地,进行复用。

Echarts 源码

我在前面提到过,Echarts 是一个开源项目,其源码资源托管在 GitHub,源码地址为:https://github.com/apache/incubator-echarts,Echarts 源码结构如下图所示:

Echarts 源码结构

上图中,src 目录存储了 Echarts 图表框架的全部核心组件源码,dist 目录存储了编译后的发布对象,theme 目录存储了主题样式相关的文件,build 目录存储了编译相关的配置文件,extension 目录为拓展功能,test 目录存储了各个图表组件的测试文件。

Echarts 源码可以自己安装,也可以使用预编译的文件,基于源码安装的时候,需要执行的操作指令如下所示:

# Install the dependencies from NPM:
npm install
# If intending to build and get all types of the "production" files:
npm run release
# The same as `node build/build.js --release`
# If only intending to get `dist/echarts.js`, which is usually
# enough in dev or running the tests:
npm run build
# The same as `node build/build.js`
# Get the same "production" files as `node build/build.js`, while
# watching the editing of the source code. Usually used in dev.
npm run watch
# The same as `node build/build.js -w`
# Check the manual:
npm run help
# The same as `node build/build.js --help`

Echarts 源码文件中,预先编译好的文件位于 dist 文件夹下面,具体文件内容如下图所示:

Echarts 文件下载

Echarts 图表组件库文件,包括三个版本:完整版、标准版和精简版。三个版本的特点如下所示。

  • 完整版:文件名为 incubator-echarts/dist/echarts.js,体积最大,包含所有的图表和组件,详情可查看文件:incubator-echarts/echarts.all.js。

  • 标准版:文件名为 incubator-echarts/dist/echarts.common.js,体积适中,包含常用的图表和组件,详情可查看文件:incubator-echarts/echarts.common.js。

  • 精简版:文件名为 incubator-echarts/dist/ echarts.simple.js,体机最小,仅包含最常用的图表和组件,详情可查看文件:incubator-echarts/echarts.simple.js。

Echarts 导入

使用 Echarts 图表组件库之前,需要引入对应的 JavaScript 库文件。文件的引入方式有本地引入和远程引入。本地引入是需要把 Echarts 库文件下载到本地服务器,具体的引入方式如下所示:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><!-- 引入 ECharts 文件 --><script src="echarts.min.js"></script>
</head>
</html>

采用本地方式引入 Echarts 文件的时候,需要注意文件目录,必须与 echarts.min.js 实际所在的位置保持一致。

介绍完本地引入后,我们再来看看远程引入。远程引入是通过网络方式,引入第三方提供的 Echarts 文件,用得最多的就是由百度提供 Echarts 库文件,具体的引入方式如下所示:

<head><meta charset="utf-8"><!-- 引入 echarts.js --><script src="https://echarts.baidu.com/dist/echarts.min.js">          </script>
</head>

以上,我介绍了 Echarts 文件引入的方式,这类引入方式属于标准的 JavaScript 库文件引入,差异只在于引入的目标文件和路径不同。

了解了文件的引入方式,接下来,我们看一下 Echarts 图表的参数配置。

Echarts 配置

Echarts 的配置主要是图表的参数设置,内容包括图表的标题、图例、工具箱、提示框、数据、主题样式等,配置好的参数,最终会体现在可视化的图表中。一个典型的图表参数的呈现区域,如下图所示:

Echarts 图表参数

上图中,我们可以看到 Echarts 图表的配置项和各配置项图表元素具体的位置,包括:标题配置项、图例配置项、工具箱配置项、缩放区域配置项、提示框框配置项等。这些配置项都是通过 Echarts 图表参数进行设置的。

学习了 Echarts 的源码、导入、参数和配置之后,我们来通过一个案例,了解具体的配置方法。

Echarts 案例

Echarts 图表开发的过程主要分为四个步骤:Echarts 文件引入HTML DOM 对象声明图表对象初始化参数设置。我们先来看一下案例运行之后的效果,然后再逐步拆解,还原过程。下图是一个柱状图的 Echarts 呈现效果:

Echarts 柱状图案例

要想实现以上的柱状图,首先需要在源码中,引入 Echarts 库文件,具体的代码如下所示:

<head><meta charset="utf-8"><!-- 引入 echarts.js --><script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>

引入文件完成以后,就可以使用 Echarts 图表组件里面定义的图表对象了,接下来,需要定义一个 HTML DOM 对象,用来作为 Echarts 图表元素的容器,源码如下所示:

<div id="container" style="height: 100%"></div>

对象声明就是声明一个带有 ID 属性的占位符 DIV,占位符名称为:"container",并且赋予了一个高度属性。接下来,我们需要完成的工作是** Echarts 对象绑定**,绑定的代码只有一行,如下所示:

var dom = document.getElementById("container");

上述代码,实现了页面元素"container" 与 JavaScript 变量 dom 之间的关系绑定,完成对象绑定后,对于变量操作,可以直接作用到对应的页面对象上,接下来要做的,就是 Echarts 的参数配置,这一步包括图表对象初始化参数设置,两部分内容,具体的代码如下所示:

<script type="text/javascript">var dom = document.getElementById("container");var myChart = echarts.init(dom);var app = {};option = null;option = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: 'bar',showBackground: true,backgroundStyle: {color: 'rgba(220, 220, 220, 0.8)'}}]};;if (option && typeof option === "object") {myChart.setOption(option, true);}
</script>

上图中,首先声明了一个变量 dom,完成页面元素与 Javascript 变量之间的关联,然后创建一个 Echarts 图表对象 myChart,并进行初始化。接下来进行 myChart 图表对象的参数设置,其中 option 是图表的参数对象,其中 xAxis、yAxis 代表坐标轴 x 和 y 轴的设置,series 代表的是图表的数值系列。此处为了简化程序的复杂度,我们把 option 属性参数写成了固定内容,实际工作中,需要根据业务需求进行数据内容的替换。配置完成 option 参数之后,myChart 对象需要执行一次设置操作 setOption,一个完整的配置过程就结束了。

通过以上的操作,我们完成了一个 Echarts 基本的图表对象的创建工作,通过浏览器就可以直接预览图表内容。该文件完整的代码结构如下所示:

<!DOCTYPE html>
<html style="height: 100%"><head><meta charset="utf-8"><!-- 引入 echarts.js --><script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script></head><body style="height: 100%; margin: 0"><div id="container" style="height: 100%"></div><script type="text/javascript">var dom = document.getElementById("container");var myChart = echarts.init(dom);var app = {};option = null;option = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: 'bar',showBackground: true,backgroundStyle: {color: 'rgba(220, 220, 220, 0.8)'}}]};;if (option && typeof option === "object") {myChart.setOption(option, true);}</script></body>
</html>

小结

本节课,我系统地介绍了 Echarts 图表组件框架的特性、官方资源、源码结构、使用方法,并且给出了一个完整的示例程序。案例部分讲述的是使用固定的 Echarts 数据参数,嵌入到一个 HTML 页面。实际的工作中,图表的数据通常来自动态的数据库表查询,并且需要进行前后端程序的交互。基于 Echarts 图表的动态设计,我将在以后介绍给大家。

上次有个同学问到“关于数据可视化分析,什么可以推荐的书籍和材料吗?”为避免有些同学没有看到,我在这里把这个问题展示了出来,同时对我当时的回答做了一些补充:

“最好的学习资料,其实是相应的开源工具或者框架的用户手册或者说明文档,市面上关于数据可视化分析的图书很多,但是具有实战指导意义的图书至今没有见到过,更多的是在讲技术本身的层面,而没有和业务场景结合。因此暂无可以推荐的内容。不过,我可以给你两点学习上的建议:

  1. 系统性的看一下 Echarts、PyEcharts 官方网站的案例部分(学习数据呈现);

  2. 结合本课程讲到的数据可视化分析洞察的方法,应用到自己的业务场景,进行适配。”

下一节,我将带你了解 PyEcharts。


精选评论

**艺:

运行完示例得echarts代码 还是显示源码如何解决呢

讲师回复:

需要用浏览器打开

数据分析可视化04 图表组件:Echarts数据可视化图表基础相关推荐

  1. web元件库、axure元件库、通用元件库、常用web组件、常用表单、框架、数据表单、导航栏、边框、图标、列表、日期时间选择器、评分组件、穿梭框、输入框、步骤条、图表组件、数据可视化、后台模板、时间轴

    web元件库.axure元件库.通用元件库.常用web组件.常用表单.框架.数据表单.导航栏.边框.图标.列表.日期时间选择器.评分组件.穿梭框.输入框.步骤条.图表组件.数据可视化.后台模板.时间轴 ...

  2. web元件库、axure元件库、元件库、web组件、控件、表单、框架、数据表单、导航栏、边框、图标、列表、日期时间选择器、评分组件、穿梭框、输入框、步骤条、图表组件、数据可视化、后台模板、时间轴

    web元件库.axure元件库.通用元件库.web组件.控件.表单.框架.数据表单.导航栏.边框.图标.列表.日期时间选择器.评分组件.穿梭框.输入框.步骤条.图表组件.数据可视化.后台模板.时间轴. ...

  3. Echarts数据可视化event图表事件的相关操作,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  4. Echarts数据可视化action图表行为的相关操作,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  5. Echarts数据可视化echarts实例的相关操作,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  6. Echarts数据可视化series-scatter散点图,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  7. Echarts数据可视化series-radar雷达图,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  8. Echarts数据可视化series-pie饼图,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  9. Echarts数据可视化series-map地图,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  10. Echarts数据可视化series-line线图,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

最新文章

  1. linux搭建--DISPLAY环境变量问题(一)
  2. 动态规划的用法——01背包问题
  3. 201312-1- 出现次数最多的数
  4. 转【快速把web项目部署到weblogic上】
  5. Python实现softmax函数
  6. 腾讯云linux系统结合nginx部署项目
  7. 使用RxNetty访问Meetup的流API
  8. 《重构-改善既有代码的设计》学习笔记(一)
  9. 前端学习(2061):vue的mvvm
  10. vue点击切换类名_vue 新用户引导(vue-dirver)
  11. Java构造方法与析构方法实例剖析
  12. 七年也扶不起的苹果 Siri
  13. 爬虫系列4:Requests+Xpath 爬取动态数据
  14. 详解java的构造方法
  15. Linux学习笔记——SecureCRT 8版本中文破解版
  16. 推荐5个超级实用的 Python 模块,不知道就out啦!
  17. 元宇宙下的商人、小说家和“钢铁侠”
  18. 怎么用python编写心形图案,python编程爱心形状turtle
  19. 教你搭个助我大学拿Offer的面试项目
  20. 程序员是如何开灯的 白话闲聊mqtt协议

热门文章

  1. Excel一键另存工作簿中的多个工作表为PDF
  2. jPage.js分页
  3. impala操作指南
  4. 头歌平台Python实训答案——循环结构
  5. 亡羊补牢,未时未晚......
  6. SQL排名问题(薪资,成绩等排序问题)
  7. 运放相位(频率)补偿电路设计
  8. 单片机实验3:利用视觉残留效果动态显示0-7
  9. gmtime和localtime的区别
  10. Unity制作RPG游戏——相机的设计与实现