CSDN开源夏令营 百度数据可视化实践 ECharts(2)

将ECharts引入项目中的几种详细方法讲解

(1)打好基本功

首先感谢林峰老师!给我们的悉心指导。我们之所以学习ECharts和Zrender图表组件,为了就是能够将图表应用到我们的实际情况中 来,进而让图表的战士能给我们一种更加人性化的方式呈现给用户。所有我们必须熟悉ECharts中相关组件。下面的例子都以line为例。

(2)将ECharts引入项目共有三种方式

2.1)第一种方式-模块化包引入

模块化包引入模式也可以称为开发模式,是开发时最好的方法,不管是开发echarts还是用echarts都是,因为文件未被合并压缩,所以有错误的话能立马定位到出错的地方从而让你快速的知道可能问题会出在哪里。但是这个并不适合上线,文件太大,加载太慢。这样上网会被骂死的。

首先下载Zrender到本地,和ECharts放在同一目录下。

在echarts/doc/example/www文件中建立一个HTML文件,所使用的js文件都包含在js文件中。

包含echarts.js、echarts-map.js、esl.js三个,其实只用到两个,echarts-map.js并不用。

Html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="ECharts">
    <title>ECharts · Example</title>
</head>

<body>
	<div id="main" style="height:500px;border:1px solid #ccc;padding:10px;"></div>
    <script src="js/esl.js"></script>
    <script type="text/javascript">
        require.config({
            packages: [
                {
                    name: 'echarts',
                    location: '../../../src',
                    main: 'echarts'
                },
                {
                    name: 'zrender',
                    //location: 'http://ecomfe.github.io/zrender/src',
                    location: '../../../../zrender/src',
                    main: 'zrender'
                }
            ]
        });

        var option = {
				//图表标题
				title:{
					text:"未来一周气温变化",
					subtext:"纯属虚构"
				},
                tooltip : {
                    trigger: 'axis'
                },
                legend: {
                    data:['蒸发量','降水量']
                },
                toolbox: {
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        magicType : {show: true, type: ['line', 'bar']},
                        restore : {show: true},
                        saveAsImage : {show: true}
                    }
                },
                calculable : true,
                xAxis : [
                    {
                        type : 'category',
						boundaryGap : false,
                        data : ['周一','周二','周三','周四','周五','周六','周日']
                    }
                ],
                yAxis : [
                    {
                        type : 'value',
                        axisLabel : {
							formatter: '{value} °C'
                    }
					}
                ],
				series : [
				{
					name:'最高气温',
					type:'line',
					data:[11, 11, 15, 13, 12, 13, 10],
					markPoint : {
						data : [
							{type : 'max', name: '最大值'},
							{type : 'min', name: '最小值'}
						]
					},
					markLine : {
						data : [
							{type : 'average', name: '平均值'}
						]
					}
				},
				{
					name:'最低气温',
					type:'line',
					data:[1, -2, 2, 5, 3, 2, 0],
					markPoint : {
						data : [
							{name : '周最低', value : -2, xAxis: 1, yAxis: -1.5}
						]
					},
					markLine : {
						data : [
							{type : 'average', name : '平均值'}
						]
					}
				}
			]
        };

        require(
            [
                'echarts',
                'echarts/chart/line',
                'echarts/chart/bar'
            ],
            function (ec) {
                var myChart = ec.init(document.getElementById('main'));
                myChart.setOption(option);
            }
        )
    </script>
</body>
</html>

2.2)第二种方式-模块化单文件引入(推荐)

在这里我们只是用line图表,其他的不用,如果你不用的话打包在一起就非常浪费,这时候就可以通过build目录下的build.js文件来构建一个更加贴身的echarts单文件。

总结来说模块化如何引入ECharts,你都需要如下4步:

1、引入一个模块加载器,如esl.js或者require.js

2、为ECharts准备一个具备大小(宽高)的Dom(当然可以是动态生成的)

3、为模块加载器配置echarts的路径,从当前页面链接到echarts.js,见上述说明

4、动态加载echarts然后在回调函数中开始使用(容我罗嗦一句,当你确保同一页面已经加载过echarts,再使用时直接require(‘echarts‘).init(dom)就行)

首先下载node下载完成后,安装好node。

打开build文件夹,看到如下文件:

这里我已经建立了一个新的build01.bat 就是单一生成echarts.js

node build.js optimize=true plain=false exclude=map output=echarts.js

当然也可以在终端里通过命令行参数方式运行 node.js构建脚本。

具体语法:

node build.js optimize=true exclude=map,force,line output=echarts.js plain=true
名称 描述
optimize 是否压缩, 默认false
exclude 不打包的图表,多个图表使用逗号分割, 默认使用所有图表
output 输出打包地址,默认为echarts.js
plain 是否打包esl, 打包的话可以直接使用scripts标签引入, 默认false

config-tpl.js文件修改为:

{
    // appDir: './',
    baseUrl: '../src',
    name: 'echarts',
    packages: [
        {
            name: 'zrender',
            location: '../../zrender/src',
            main: 'zrender'
        },
        {
            name: 'echarts',
            location: '.',
            main: 'echarts'
        }
    ],
    include:[
        'echarts/chart/line'
    ],
    out: 'echarts.js'
}

完成后,将echarts.js拷贝到doc/example/www/js文件中,并将原有的覆盖。

新建html文件,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <script src="js/esl.js"></script>
</head>

<body>
    <div id="main" style="height:500px;border:1px solid #ccc;padding:10px;"></div>
    <script type="text/javascript">
    require.config({
        paths:{
            echarts:'./js/echarts',
            'echarts/chart/line': './js/echarts'
        }
    });
    require(
        [
            'echarts',
            'echarts/chart/line'
        ],
        function (ec) {
            var myChart = ec.init(document.getElementById('main'));
            myChart.setOption({
				title:{
					text:"未来一周气温变化",
					subtext:"纯属虚构"
				},
                tooltip : {
                    trigger: 'axis'
                },
                legend: {
                    data:['蒸发量','降水量']
                },
                toolbox: {
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        magicType : {show: true, type: ['line', 'bar']},
                        restore : {show: true},
                        saveAsImage : {show: true}
                    }
                },
                calculable : true,
                xAxis : [
                    {
                        type : 'category',
						boundaryGap : false,
                        data : ['周一','周二','周三','周四','周五','周六','周日']
                    }
                ],
                yAxis : [
                    {
                        type : 'value',
                        axisLabel : {
							formatter: '{value} °C'
                    }
					}
                ],
				series : [
				{
					name:'最高气温',
					type:'line',
					data:[11, 11, 15, 13, 12, 13, 10],
					markPoint : {
						data : [
							{type : 'max', name: '最大值'},
							{type : 'min', name: '最小值'}
						]
					},
					markLine : {
						data : [
							{type : 'average', name: '平均值'}
						]
					}
				},
				{
					name:'最低气温',
					type:'line',
					data:[1, -2, 2, 5, 3, 2, 0],
					markPoint : {
						data : [
							{name : '周最低', value : -2, xAxis: 1, yAxis: -1.5}
						]
					},
					markLine : {
						data : [
							{type : 'average', name : '平均值'}
						]
					}
				}
			]
            });
        }
    );
    </script>
</body>
</html>

2.2)第三种方式-标签式单文件引入(推荐)

自1.3.5开始,ECharts提供标签式引入。如果你的项目本身并不是基于模块化开发的,或者是基于CMD规范(如使用的是seajs),那么引入基于AMD模块化的echarts可能并不方便,我们建议你采用srcipt标签式引入,忘掉require,srcipt标签引入echarts后将可以直接使用两个全局的命名空间:echarts,zrender,可参考ECharts标签式引入。

可以直接引入的单文件如下:

1、echarts-plain.js : 经过压缩,包含除地图外的全部图表

2、echarts-plain-original.js : 未压缩,可用于调试,包含除地图外的全部图表

3、echarts-plain-map.js : 经过压缩,全图表,包含world,china以及34个省市级地图数据

4、echarts-plain-original-map.js : 未压缩,可用于调试,全图表,包含world,china以及34个省市级地图数据

方法:还是在www文件夹下建立一个html文件,当然位置可以随意放,用到的js文件是在百度ECharts的服务器上的。代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
</head>
<body>
    <!--Step:2 Prepare a dom for ECharts which (must) has size (width & hight)-->
    <!--Step:2 为ECharts准备一个具备大小(宽高)的Dom-->
    <div id="main" style="height:500px;border:1px solid #ccc;padding:10px;"></div>
    <div id="mainMap" style="height:500px;border:1px solid #ccc;padding:10px;"></div>
</body>
	<!--Step:1 Import echarts-plain.js or echarts-plain-map.js-->
	<!--Step:1 引入echarts-plain.js或者 echarts-plain-map.js-->
	<script src="http://echarts.baidu.com/doc/example/www2/js/echarts-plain-map.js"></script>
	<script type="text/javascript">
    // Step:3 echarts & zrender as a Global Interface by the echarts-plain.js.
    // Step:3 echarts和zrender被echarts-plain.js写入为全局接口
    var myChart = echarts.init(document.getElementById('main'));
          myChart.setOption({
				//图表标题
				title:{
					text:"未来一周气温变化",
					subtext:"纯属虚构"
				},
                tooltip : {
                    trigger: 'axis'
                },
                legend: {
                    data:['蒸发量','降水量']
                },
                toolbox: {
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        magicType : {show: true, type: ['line', 'bar']},
                        restore : {show: true},
                        saveAsImage : {show: true}
                    }
                },
                calculable : true,
                xAxis : [
                    {
                        type : 'category',
						boundaryGap : false,
                        data : ['周一','周二','周三','周四','周五','周六','周日']
                    }
                ],
                yAxis : [
                    {
                        type : 'value',
                        axisLabel : {
							formatter: '{value} °C'
                    }
					}
                ],
				series : [
				{
					name:'最高气温',
					type:'line',
					data:[11, 11, 15, 13, 12, 13, 10],
					markPoint : {
						data : [
							{type : 'max', name: '最大值'},
							{type : 'min', name: '最小值'}
						]
					},
					markLine : {
						data : [
							{type : 'average', name: '平均值'}
						]
					}
				},
				{
					name:'最低气温',
					type:'line',
					data:[1, -2, 2, 5, 3, 2, 0],
					markPoint : {
						data : [
							{name : '周最低', value : -2, xAxis: 1, yAxis: -1.5}
						]
					},
					markLine : {
						data : [
							{type : 'average', name : '平均值'}
						]
					}
				}
			]
            });
    </script>
</html>

总结:

三种方法的最终的运行结果都一样,如下图所示:

CSDN开源夏令营 百度数据可视化实践 ECharts(2),布布扣,bubuko.com

时间: 2024-08-05 06:39:12

CSDN开源夏令营 百度数据可视化实践 ECharts(2)的相关文章

CSDN开源夏令营 百度数据可视化实践 ECharts(6) 期中总结

期中总结 (1)首先感谢林峰老师的辛勤指导!! 通过半个多月的培训,林峰老师讲解了ECharts总体框架和其中各个部分:图类.组件.接口.基础库的具有应用方法和应该把握的细节,并通过实际的例子熟悉和掌握各个控件.只有打牢基础才能正正的为下步的工作做好准备,熟练的属性代码的编程技巧,才能做出更好的专题. (2)第一次任务重点总结: 要求:了解ECharts特性中列举的每一项特性,并能找到实例中的例子,并且在实例中操作. 重点问题: 1)ECharts一种支持多少种图表?有多少个组件?列举出中英文名

CSDN开源夏令营 百度数据可视化实践 ECharts(1)

总体规划 (1)选题: 通过了解林峰老师的专题中国主要城市空气质量实况.中国经济十年时空漫游和中国人口流动大潮,涉及了人口.经济和民生等方面的内容,在这里我选择中国高考,作为我的切入点. 高考,一个永恒的话题,是一场你我都值得经历的一场无硝烟的战争.有人曾说:每个高考的孩子都背负着几代人的希望,每个高考的背后都有众多关注的眼睛.人生能有几回搏?虽然失去了许多,但终究会收获很多. (2)题目 2006-2014高考各省市报名人数及录取人数汇总专题 (3)搜集数据资料 工欲善其事,必先利其器.数据的

CSDN开源夏令营 百度数据可视化实践 ECharts(8)

(1)前言 首先谢谢林峰老师,继续接着第七篇提到的内容,CSS布局确实很累,感觉不好看了就的调整,总的看起来的高大上嘛,好了废话不再多说.今天主要就先讲解一个页面的内容,对于CSS布局后面讲会详细的介绍给大家. 另外我写的搭配时间轴地图扩展被ECharts采用,http://echarts.baidu.com/doc/example/map19.html (2)总体内容 专题包含有如下五块: 1)大海战全程: 实时描述大海战 2)国力对比篇: 中日战前.战后国力对比 3)装备对比篇: 海军实力全

CSDN开源夏令营 百度数据可视化实践 ECharts(4)

ECharts知识点总结: 在应用过程中总会遇到一些难以理解的概念和属性,这里就总结了一下比较难的知识点,方便理解概念,进而更好的掌握ECharts. (1)1.  一个完整的option包含什么?可以归纳为几类? 下图中颜色已经区分出了三类分别是:公共选项 , 组件选项 , 数据选项 名称 描述 {color}backgroundColor 全图默认背景,(详见backgroundColor),默认为无,透明 {Array} color 数值系列的颜色列表,(详见color),可配数组,eg:

CSDN开源夏令营 百度数据可视化实践 ECharts(5)

Echarts map 谢谢林峰老师的辛勤指导! 本节内容:熟练掌握map和时间轴的搭配 (1)map基本属性 名称 默认值 描述 {boolean | string}selectedMode null 选中模式,默认关闭,可选single,multiple {string} mapType 'china' 地图类型,支持world,china及全国34个省市自治区.省市自治区的mapType直接使用简体中文: 新疆, 西藏, 内蒙古, 青海, 四川, 黑龙江, 甘肃, 云南, 广西, 湖南,

CSDN开源夏令营 百度数据可视化实践 ECharts(7)

本周主要内容整体页面布局: 基于CSS和javascript的页面布局 (1)CSS简介 CSS是能够真正做到网页表现与内容分离的一种样式设计语言.相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言.CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性. 方式:id选择器: 实例: #echarts1 {

CSDN开源夏令营 百度数据可视化实践 ECharts(3)

Echarts  仪表盘 这里主要讲一讲series(仪表盘)的用法,驱动图表生成的数据内容数组,数组中每一项为一个系列的选项及数据 功能丰富,可以做出很漂亮的东西来. (1)首先讲一下仪表盘的基本属性 其中最常用的属性: center 圆心坐标,支持绝对值(px)和百分比,百分比计算min(width,height)*50%,radius 半径大小,支持绝对值(px),百分比计算. radius:半径属性,可以调控半径的大小,支持绝对路径和百分比. (2)全部属性: 名称 默认值 描述 {Ar

CSDN开源夏令营 百度数据可视化实践 ECharts 11 (期末总结)

致谢: CSDN开源夏令营马上就要结束了,随着ECharts专题列入百度ECharts官网,任务就算是基本完成了.再次谢谢林峰老师!回想两个月前听到CSDN要举办这个活动,第一感觉是非常棒,所有就积极看了看所有的项目,项目总体质量很棒,涉及的方面也很广,有云与大数据方面的.有前端与移动方面的.嵌入式与智能硬件方面的.其中linux方面的也很多,总之项目很丰富,也都很有挑战.CSDN是第一年举办这样的活动,虽然时间准备上有些仓促外,总体上组织的很好,在做项目的过程中CSDN的工作人员的服务态度也很

CSDN开源夏令营 百度数据可视化实践 ECharts(8)问题分析

ECharts问题描述: 问题就是折线图上的点是显示的,有人问能不能一开始不显示,当你点击的时候或者是当鼠标移动到上面的时候,折线上的点才显示? 如下图所示: 分析:让折线上的点不显示可以让symbol属性为"none".考虑到当点击的时候让折线上的点显示出来,那么可以再on事件中重新加载option事件.当click到折线关键点时候可以重新加载数据中symbol属性,设置成你想要的形状,并且一定要重新加载setOption事件. {self} on {string} eventNam