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

十六、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>

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

相关推荐
东莞市云毅网络有限公司4 小时前
AI 引用句逐条回指原文:让回答可回溯的校验实现
python·数据清洗·rag·企业知识库·文档解析
Sarvartha6 小时前
final 关键字
java·开发语言
数字融合6 小时前
透明化视频三维矿山井下照明重建技术
人工智能·python·数码相机
yi0116 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
程序员Sunday7 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
奈落247 小时前
AI 编程从助手到 Agent:基于两份资料看哪些环节可以交出去,哪些必须自己攥住
大数据·人工智能
Joker可视化开发平台7 小时前
AI短剧接棒真人剧:开机量跌七成,普通人进场窗口在收窄
大数据·人工智能
数据狐(Datafox)7 小时前
淘宝图片搜索 API 落地实战:基于以图搜货搭建跨境电商选品系统
java·大数据·微服务
YangYang9YangYan7 小时前
2027 秋招|数据科学与大数据技术面试项目价值回答思路,告别纯代码描述
大数据·面试·职场和发展
2601_960356387 小时前
2027 校招质量工程师岗位拆解:数学、统计、大数据专业如何判断匹配度
大数据