头歌实践教学平台:数据科学与大数据技术导论(十六)

十六、Echarts开源库实现绘图

第1关:Echarts 的下载与使用

任务描述

本关任务:利用 Echarts 绘制一个简单的图表,效果如下:

相关知识

为了完成本关任务,你需要掌握:1.下载 Echarts,2.如何引入 Echarts,3.绘制一个简单的图表。

下载 Echarts

我们选用的版本是:ECharts v4.1.0 rc2

linux 环境: 点击下载

Windows 环境: 点击下载

引入 Echarts

ECharts 3 版本以后,引入方式简单了很多,在 HTML 文件中,只需要像普通的 JavaScript 库一样用script标签引入。

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<!-- 引入 ECharts 文件 -->

<script src="echarts.js"></script>

</head>

</html>

其中src的路径为你自己下载的echarts.xxx.js路径。

注意:Echarts 有多个版本,你可以根据自己的需要下载精简版或完整版,本实训选用的是ECharts v4.1.0 rc2版。

绘制一个简单的图表

在绘图前我们需要为 ECharts 准备一个具备高宽的 DOM 容器。

<body>

<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->

<div id="main" style="width: 600px;height:400px;"></div>

</body>

然后就可以通过echarts.init方法初始化一个echarts实例并通过 setOption方法生成一个简单的柱状图,下面是完整代码。

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>ECharts</title>

<!-- 引入 echarts.js -->

<script src="echarts.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>

各部分设置如下:

总结,生成柱状图的流程为:

• 引入 echarts.js

• 为 ECharts 准备一个具备高宽的 DOM 容器

• 通过 echarts.init 方法初始化一个 echarts 实例

• 在 option 中设置柱状图的标题( title ), x 轴, y 轴等数据, series 中 type 属性设置图表类型, bar 代表柱状图

• 通过 setOption 方法使刚才的设置生效

编程要求

仿造实训中的例子,在右侧编辑器补充代码,绘制柱状图,效果如下图:

• 图表标题为: Educoder 实训统计

• 其中实训数量分别为: 300, 280, 386, 180, 210, 50

测试说明

我会对你编写的代码进行测试:

开始你的任务吧,祝你成功!

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>ECharts</title>

<!-- 引入 echarts.simple.min.js -->

<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.1.0.rc2/echarts.js"></script>

</head>

<body>

<!-- 为ECharts准备一个具备大小(宽高)的Dom -->

<div id="main" style="width: 600px;height:400px;"></div>

<script type="text/javascript">

// 基于准备好的dom,初始化echarts实例

<!-- Begin 1 -->

var myChart = echarts.init(document.getElementById('main'));

<!-- End 1 -->

// 指定图表的配置项和数据

<!-- Begin 2 -->

var option = {

title: {

text: 'Educoder 实训统计'

},

tooltip: {},

legend: {

data:'实训数量'

},

xAxis: {

data: "Java","Python","Linux","数据库","HTML","Web"

},

yAxis: {},

series: [{

name: '实训数量',

type: 'bar',

data: 300, 280, 386, 180, 210, 50

}]

};

<!-- End 2 -->

// 使用刚指定的配置项和数据显示图表。

<!-- Begin 3 -->

myChart.setOption(option);

<!-- End 3 -->

</script>

</body>

</html>

第2关:Echarts 绘制折线图

任务描述

本关任务:利用 Echarts 绘制一个简单的折线图。

相关知识

为了完成本关任务,你需要掌握:如何利用 Echarts 绘制折线图。

绘制折线图

绘制折线图的流程和柱状图相同,我们只需要在series中指定type类型为折线图line:

series: [{

name: 'xxx',

type: 'line',

data: xx, xx,

}]

编程要求

在右侧编辑器补充代码,绘制折线图,效果如下图:

其中实训数量分别为:data: 300, 800, 2400, 3600, 5600, 8000

测试说明

我会对你编写的代码进行测试:

开始你的任务吧,祝你成功!

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>ECharts</title>

<!-- 引入 echarts.simple.min.js -->

<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.1.0.rc2/echarts.js"></script>

</head>

<body>

<!-- 为ECharts准备一个具备大小(宽高)的Dom -->

<div id="main" style="width: 600px;height:400px;"></div>

<script type="text/javascript">

// 基于准备好的dom,初始化echarts实例

<!-- Begin 1 -->

var myChart = echarts.init(document.getElementById('main'));

<!-- End 1 -->

// 指定图表的配置项和数据

<!-- Begin 2 -->

var option = {

title: {

text: 'Educoder 实训统计'

},

tooltip: {},

legend: {

data:'实训数量'

},

xAxis: {

data: "Java","Python","Linux","数据库","HTML","Web"

},

yAxis: {},

series: [{

name: '实训数量',

type: 'line',

data: 300, 800, 2400, 3600, 5600, 8000

}]

};

<!-- End 2 -->

// 使用刚指定的配置项和数据显示图表。

<!-- Begin 3 -->

myChart.setOption(option);

<!-- End 3 -->

</script>

</body>

</html>

第3关:Echarts 绘制饼图

任务描述

本关任务:利用 Echarts 绘制一个饼图。

相关知识

为了完成本关任务,你需要掌握:1.利用 Echarts 绘制饼图,2.如何添加特效。

绘制饼图

和绘制柱状图和折线图相比,饼状图在option中无需设置x轴和y轴,series设置如下(type类型为pie):

series: [{

name: '实训数量',

type: 'pie',

data: [

{name:"Java",value:300},

{name:"Python",value:280},

{name:"Linux",value:386},

{name:"数据库",value:180},

{name:"HTML",value:210},

{name:"Web",value:50},

]

}]

代码设置后效果如下:

饼图其他设置和每一部分百分比的显示

上面画好了一个最基本的饼图,但我们平常见到的饼图还会显示出每部分所占的百分比,接下来我们一起设置,并美化一下我们的饼图吧~

补充设置series:

series : [{

name: '实训数量',

type: 'pie',

radius : '55%', //设置整个圆的大小

center: '50%', '60%', //设置整个圆的位置

data:[

{value:335, name:'Java'},

{value:310, name:'Python'},

{value:234, name:'Linux'},

{value:135, name:'数据库'},

{value:1548, name:'HTML'},

{value:158, name:'Web'}

]

}]

设置提示框显示百分比:

tooltip : {

trigger: 'item',

formatter: "{a} <br/>{b} : {c} ({d}%)"

},

效果如下(把鼠标放到该部分就会有提示框显示该部分的信息和所占百分比):

编程要求

仿造实训中的例子,在右侧编辑器补充代码,绘制饼图,效果如下图:

要求:

设置圆的大小为55%

设置圆的位置为'40%', '50%'

设置提示框显示圆的百分比

其中实训数量分别为:300, 280, 386, 180, 210, 50

测试说明

我会对你编写的代码进行测试:

开始你的任务吧,祝你成功!

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>ECharts</title>

<!-- 引入 echarts.simple.min.js -->

<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.1.0.rc2/echarts.js"></script>

</head>

<body>

<!-- 为ECharts准备一个具备大小(宽高)的Dom -->

<div id="main" style="width: 600px;height:400px;"></div>

<script type="text/javascript">

// 基于准备好的dom,初始化echarts实例

<!-- Begin 1 -->

var myChart = echarts.init(document.getElementById('main'));

<!-- End 1 -->

// 指定图表的配置项和数据

<!-- Begin 2 -->

var option = {

title: {

text: 'Educoder 实训统计'

},

tooltip : {

trigger: 'item',

formatter: "{a} <br/>{b} : {c} ({d}%)"

},

series : [{

name: '实训数量',

type: 'pie',

radius : '55%', //设置整个圆的大小

center: '40%', '50%', //设置整个圆的位置

data:[

{name:"Java",value:300},

{name:"Python",value:280},

{name:"Linux",value:386},

{name:"数据库",value:180},

{name:"HTML",value:210},

{name:"Web",value:50}

]

}]

};

<!-- End 2 -->

// 使用刚指定的配置项和数据显示图表。

<!-- Begin 3 -->

myChart.setOption(option);

<!-- End 3 -->

</script>

</body>

</html>

有任何问题都可以随时关注私信!

相关推荐
萌动的小火苗14 分钟前
数据结构面试题【无答案】
c语言·开发语言·数据结构·链表
宸津-代码粉碎机17 分钟前
AI工程化高阶实战|从Demo到生产落地核心架构、全套源码与避坑指南
java·大数据·开发语言·人工智能·python·架构
自由能燃气设备26 分钟前
燃气热水锅炉/全预混低氮冷凝锅炉哪个品牌好?哪家好?6大商用品牌横评
大数据·数据库·人工智能
资深电气设计1 小时前
技术分析:空调机房水泵性能优势与系统适配性研究——水力能效、结构集成与智能运维维度
大数据·运维
Zenova EdgeOS1 小时前
工业网关心跳机制:从 Keepalive 到健康判定的工程实战
大数据·网络·数据库·边缘计算·工业网关
XR1234567881 小时前
办公网自主创新建设怎么选?信创办公场景的选型逻辑
开发语言·php
郝学胜-神的一滴1 小时前
Effective Python 条款4:字符串格式化大乱斗
开发语言·网络·python·程序人生·软件工程
奶油喜多多2 小时前
教育小程序定制开发技术选型:SaaS 化还是自建?深度分析
大数据
Ramble_Naylor2 小时前
只借不占:Rust 的引用与借用
开发语言·rust