E-Charts的基本使用

E-Chart首先放一个E-Chart的官方文档,对于E-Chart的所有使用详情、方法这里都有E-Chart官方文档:https://www.echartsjs.com/zh/tutorial.htmlE-
E-Chart下载地址:
GitHub下载地址:https://github.com/apache/incubator-echarts/releases
网盘下载地址:https://pan.baidu.com/s/1ShSe8C155EIjXNtSlSxsQA
教程相关代码(网盘):https://pan.baidu.com/s/1a7x3Ufa_SnoLpH2St6yP_g

简单使用

<!DOCTYPE html>
<html lang="en">
<head>    
	<meta charset="UTF-8">    
	<meta name="viewport" content="width=device-width, initial-scale=1.0">    
	<meta http-equiv="X-UA-Compatible" content="ie=edge">    
	<title>E-Chart教程</title>    
	<!-- 引入echart的js文件 -->    
	<script src="js/echarts.min.js"></script>
</head>
<body>    
	<!-- 添加一个显示图表的容器,并设置容器宽高(必须设置宽高,否则图表将无法显示出来) -->    
	<div id="chart" style="width: 400px;height: 400px;">    </div>
	<script>    
		//通过echarts封装好的代码实例化E-Chart的实例(一个图表对象)    
		var chart = echarts.init(document.getElementById('chart'));    
		//定义一个配置对象用于配置图表    
		var option = {        
			// 设置图表标题        
			title: {        
				text: 'E-Charts教程'        
			},        
			// 设置图表图例        
			legend: {            
				data:['销量']        
			},        
			// 设置X轴的值(坐标点描述,必须设置,否则无法显示图表)        
			xAxis: {            
			data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]        
			},        
			// 设置Y轴的值(必须设置,哪怕大括号中没有内容,否则无法显示图表) 
			yAxis: {},        
			//设置图表数据        
			series: [            
				{                
					// 设置当前这组数据的数据描述                
					name: '销量',                
					// 设置当前这组数据需要显示的形式(bar:条形图;pie:饼图;line:折线图)                
					type: 'bar',                
					// 当前这组数据每个数据点的值                
					data: [5, 20, 36, 10, 10, 20]            
				}        
			]    
		};    
		// 将图表的配置变量赋值给图表,完成图表的设置(千万不能忘了,否则图表不会显示)    
		chart.setOption(option);
	</script>
</body>
</html>

样式设置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>E-Chart教程</title>
    <!-- 引入echart的js文件 -->
    <script src="js/echarts.min.js"></script>
</head>
<body>
    <!-- 添加一个显示图表的容器,并设置容器宽高(必须设置宽高,否则图表将无法显示出来) -->
    <div id="chart" style="width: 400px;height: 400px;">
        <script>
            //通过echarts封装好的代码实例化E-Chart的实例(一个图表对象)
            var chart = echarts.init(document.getElementById('chart'));


            //定义一个数据对象用于配置图表
            var option = {
                // 设置图表标题
                title: {
                    //标题文本(支持 “\n” 换行)
                    text: 'E-Charts教程',
                    //是否显示标题
                    show:true,
                    // 标题字体样式
                    textStyle:{
                        // 文字颜色
                        color:'#f00',
                        // 文字大小
                        fontSize:16
                    }
                },
                tooltip:{
                    // 是否显示数据提示
                    show:true,
                    // 数据提示的形式
                    trigger:'item',//item、axis、none
                    // 数据点数据提示触发条件
                    triggerOn:'click',//mousemove:移动时触发;click:点击时;none:不触发
                },
                toolbox:{
                    show:true,
                    orient:'horizontal'
                },
                // 设置图表图例
                legend: {
                    //是否显示图例
                    show:true,
                    // 图例项(与series中的name对应)
                    data:['销量'],
                    // 设置图例水平对齐方式
                    left:'center',
                    // 设置图例垂直对齐方式
                    top:'bottom',//middle:垂直居中
                    // 设置图例显示伸展方向    
                    orient:'horizontal',//vertical:垂直方向
                                      // 图例文字样式
                    fontStyle:{
                        // 图例文字颜色
                        color:'#f00',
                        //图例文字大小
                        fontSize:16
                    }
                },
                // 设置X轴的值(坐标点描述,必须设置,否则无法显示图表)
                xAxis: {
                    // x轴数据
                    data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
                    //设置x轴位置
                    position:'bottom',
                    // 设置x轴偏移量
                    offset:10,
                    // x轴名称(显示在x轴末尾)
                    name:'x轴',
                    // x轴名称样式
                    nameTextStyle:{
                        // x轴名称文字颜色
                        color:'#f00'
                    }
                },
                // 设置Y轴的值(必须设置,哪怕大括号中没有内容,否则无法显示图表)
                yAxis: {
                    // 设置y轴显示的位置
                    position:'left',
                    // 设置y轴文字显示的偏移量
                    offset:10,
                    // 设置y轴的描述
                    name:'y轴',
                    // 设置y轴名称位置
                    nameLocation:'end',//middle、center:居中,start:Y轴开始的位置,end:Y轴结束的位置
                    // Y轴最小值
                    min:0,
                    // Y轴最大值
                    max:100
                },
                // 颜色盘(全局颜色集合),如果没有设置颜色,系统将自动按顺序从颜色盘中设置颜色
                color:['#ff0000','#888800','#00ff00','#008888','#0000ff'],
                //设置图表数据
                series: [
                    // 设置多组数据
                    {
                        // 设置当前这组数据的数据描述
                        name: '销量1',
                        // 设置当前这组数据需要显示的形式(bar:条形图;pie:饼图;line:折线图;radar:雷达图;tree:树图;)
                        type: 'bar',
                        // 当前这组数据每个数据点的值
                        data: [5, 20, 36, 10, 10, 20]
                    }{
                        // 设置当前这组数据的数据描述
                        name: '销量2',
                        // 设置当前这组数据需要显示的形式(bar:条形图;pie:饼图;line:折线图;radar:雷达图;tree:树图;)
                        type: 'bar',
                        // 当前这组数据每个数据点的值
                        data: [5, 20, 36, 10, 10, 20]
                    }
                ]
            };
            // 将图表的配置变量赋值给图表,完成图表的设置(千万不能忘了,否则图表不会显示)
            chart.setOption(option);
        </script>
    </div>
</body>
</html>

当然,在强大的E-Chart中,这只是一小部分的属性,如果有需要,可以去上面的E-Chart官方文档中查找自己需要的属性,这里就不详细介绍了。

E-Chart进阶使用之动态数据

在上面的案例中,我们图表的数据都是通过Option设置好series之后就没有改变过,也就是静态的数据,但在实际应用中,经常需要图表动态显示我们的数据,下面让我们来看一下如何动态更新、显示我们的数据。

在图表的配置中,我们设置数据是通过series去设置的,设置好后通过图表的setOption();方法将写好的图表设置设置到图表对象上,那么在设置了一次数据之后我们应该怎么再次设置图表数据呢?相信你已经想到了再写个option,再调用一遍setOption();方法,Ok,没问题,我们复制粘贴,又写了一遍option,又调用了图表对象的setOption();方法,但回过头,看了一下代码,为了更新个数据,又多了几十行代码,这无疑增加了代码赘余,不利于后期的代码维护,那么这又怎么办呢?其实,这个问题E-Char官方早就想到了,也早就有了解决方法,那就是我们每次在设置图表的配置时,也就是调用setOption方法时,都会将调用时传入的图表配置与上一次的图表配置进行对比,对比后只会更改有发生变化的部分,也就是说我们如果只是向更改图表的数据,Ok,我只需要重写option中的series部分的内容,然后调用setOption方法去更改我们数据部分的配置信息,下面然我们通过一个实例来展示一下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <style>
        *{margin: 0;padding: 0;}
        .content{width: 400px;margin:auto;}
        input{padding: 10px;width: 100%;background-color: #ccc;}
    </style>
    <!-- 引入echart的js文件 -->
    <script src="js/echarts.min.js"></script>
</head>
<body>
    <div class="content">
        <!-- 添加一个显示图表的容器,并设置容器宽高(必须设置宽高,否则图表将无法显示出来) -->
        <div id="chart" style="width: 400px;height: 400px;">
            <script>
                ……
            </script>
        </div>
        <!-- 动态刷新数据按钮 -->
        <input type="button" onclick="javascript:updateData()" value="刷新数据">
    </div>
    <script>
        // 更新图表数据的方法
        function updateData(){
            var cData_1 = new Array();
            var cData_2 = new Array();
            //更改数据数组中的数据
            for(var i=0;i<6;i++){
                cData_1.push(Math.random() * 100);//生成0-100的随机数,并追加到cData_1集合中
                cData_2.push(Math.random() * 100);//生成0-100的随机数,并追加到cData_2集合中
            }
            //更改数据的图表配置变量
            var option = {
                series:[
                    {
                        // 设置当前这组数据的数据描述
                        name: '销量1',
                        // 当前这组数据每个数据点的值
                        data: cData_1   //cData_1作为第一组数据值
                    },
                    {
                        // 设置当前这组数据的数据描述
                        name: '销量2',
                        // 当前这组数据每个数据点的值
                        data: cData_2   //cData_2作为第二组数据值
                    }
                ]
            }
            //调用setOption重新设置图表的数据
            chart.setOption(option);
        }
    </script>
</body>
</html>

最后实现的效果如上图,我们点击刷新数据按钮,便可以看到图表中的数据柱发生了变化,到这里刷新图表数据就结束了,下面我们再来看一下动态添加数据。

E-Chart之动态添加数据
上面我们实现了动态更改图标的所有数据,但有时候我们需要的是动态添加、更新数据,确保数据的实时性,这时候怎么办呢?首先,我们从series标签中可以知道,图表的数据是通过数组的形式添加的,那么我们可不可以在这个数组上做些改变呢?OK,让我们来实践一下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <style>
        *{margin: 0;padding: 0;}
        .content{width: 400px;margin:auto;}
        input{padding: 10px;width: 100%;background-color: #ccc;}
    </style>
    <!-- 引入echart的js文件 -->
    <script src="js/echarts.min.js"></script>
    <script>
        // 图表数据值数组
        var xData=[89,12,43,43,12,53];
        // 图表X轴标题数据
        var xTitle=[1,2,3,4,5,6];
        // 动态变化的X轴标签(单个值)
        var xLable = 1;
        //通过echarts封装好的代码实例化E-Chart的实例(一个图表对象)
        var chart;


        // 页面加载完成后调用的方法(通过body标签中的onload(Load())实现调用)
        function Load(){
            chart  = echarts.init(document.getElementById('chart'));
            //定义一个数据对象用于配置图表
            var option = {
                    // 设置图表标题
                    title: {
                        //标题文本(支持 “\n” 换行)
                        text: 'E-Charts教程'
                    },
                    // 设置图表图例
                    legend: {
                        show:true,
                        data:['销量']
                    },
                    // 设置X轴的值(坐标点描述,必须设置,否则无法显示图表)
                    xAxis: {
                        data: xTitle,
                        //设置x轴位置
                        position:'bottom'
                    },
                    // 设置Y轴的值(必须设置,哪怕大括号中没有内容,否则无法显示图表)
                    yAxis: {
                        position:'left',
                    },
                    //设置图表数据
                    series: [
                        {
                            // 设置当前这组数据的数据描述
                            name: '销量',
                            // 设置当前这组数据需要显示的形式(bar:条形图;pie:饼图;line:折线图;radar:雷达图;tree:树图;)
                            type: 'bar',
                            // 当前这组数据每个数据点的值
                            data: xData
                        }
                    ]
                };
                // 将图表的配置变量赋值给图表,完成图表的设置(千万不能忘了,否则图表不会显示)
                chart.setOption(option);
        }
        // 动态向‘图表’中添加数据的方法
        function pushData(data){
            // push(); 该方法是向数组、集合的末尾添加一条数据记录
            xData.push(data);//追加一条数据到数据集合中
            xTitle.push(xLable);//追加一个标签值到x轴标签数组中


            xLable ++;


            // shift(); 该方法是移除数组、集合的第一条数据记录
            xData.shift();//移除第一条数据
            xTitle.shift();//移除第一个x轴标签


            // 重新设置图表数据
            var option = {
                xAxis:{
                    data:xTitle
                },
                series:[
                    {
                        name:"销量",
                        data:xData
                    }
                ]
            }
            chart.setOption(option);
        }
    </script>
</head>
<body onload="Load()">
    <div class="content">
        <!-- 添加一个显示图表的容器,并设置容器宽高(必须设置宽高,否则图表将无法显示出来) -->
        <div id="chart" style="width: 400px;height: 400px;"></div>
        <!-- 动态刷新数据按钮 -->
        <input type="button" onclick="javascript:pushData(Math.random() * 100)" value="刷新数据">
    </div>
</body>
</html>

在代码中,我们通过push方法和shift方法,实现数组在有原始数据的基础上的动态添加、移除,也就是说当没有原始数据时会出现push一条数据,又立马删掉一条数据,导致没有数据显示出来,解决办法也很简单,在图表中我们可以判断数组的长度是否到达自己限定的最大长度,通过这个判断数组长度是否到达最大长度去控制是否需要调用shift方法移除数组中第一条数据记录,这样就解决了上述问题:

// 图表数据值数组
        var xData=[];
        // 图表X轴标题数据
        var xTitle=[];
        // 动态变化的X轴标签(单个值)
        var xLable = 1;
        var xMax = 6;//最多显示六条数据
        //通过echarts封装好的代码实例化E-Chart的实例(一个图表对象)
        var chart;

// 动态向‘图表’中添加数据的方法
        function pushData(data){
            // push(); 该方法是向数组、集合的末尾添加一条数据记录
            xData.push(data);//追加一条数据到数据集合中
            xTitle.push(xLable);//追加一个标签值到x轴标签数组中


            xLable ++;


            // 判断数据条数是否到达规定的最大条数,如果到达最大条数,开始动态移除第一条数据,否则不移除
            if(xTitle.length > xMax){
                // shift(); 该方法是移除数组、集合的第一条数据记录
                xData.shift();//移除第一条数据
                xTitle.shift();//移除第一个x轴标签
            }


            // 重新设置图表数据
            var option = {
                xAxis:{
                    data:xTitle
                },
                series:[
                    {
                        name:"销量",
                        data:xData
                    }
                ]
            }
            chart.setOption(option);
        }

到这里,大家可能有些疑惑,看了这么久,一直在讲条形图,其他图像的话又要怎么用呢?其实,这些图表的用法大抵差不多,只要你懂得怎么使用条形图了,其他图形也就没什么大问题了,只是有些图表注意下它们的一些不同点就行了。

饼图:它区别与条形图的不同点在于饼图只能有一组数据,另外饼图没有x、y轴(无需xAxis和yAxis标签),然后其他地方基本一样;
折线图:除了一些折线样式有些区别之外,其余的基本与条形图一致;
雷达图:与条形图差距较大,有专属的样式配置,数据组配置方式不同;

饼图

var chart  = echarts.init(document.getElementById('chart'));
//定义一个数据对象用于配置图表
var option = {
    // 设置图表标题
    title: {
        //标题文本(支持 “\n” 换行)
        text: 'E-Charts教程'
    },
    // 设置图表图例
    legend: {
        show:true,
        data:['销量']
    },
    //设置图表数据
    series: [
        {
            // 设置当前这组数据的数据描述
            name: '销量',
            // 设置当前这组数据需要显示的形式(bar:条形图;pie:饼图;line:折线图;radar:雷达图;tree:树图;)
            type: 'pie',
            // 当前这组数据每个数据点的值
            data: [
                {value:89,name:'第一条'},
                {value:43,name:'第二条'},
                {value:12,name:'第三条'},
                {value:54,name:'第四条'},
                {value:74,name:'第五条'},
            ]
        }
    ]
};
// 将图表的配置变量赋值给图表,完成图表的设置(千万不能忘了,否则图表不会显示)
chart.setOption(option);

折线图

<script>
        // 页面加载完成后调用的方法(通过body标签中的onload(Load())实现调用)
        function Load(){
            var chart  = echarts.init(document.getElementById('chart'));
            //定义一个数据对象用于配置图表
            var option = {
                // 设置图表标题
                title: {
                    //标题文本(支持 “\n” 换行)
                    text: 'E-Charts教程'
                },
                // 设置图表图例
                legend: {
                    data:['销量']
                },
                xAxis:{
                    data:['第一条','第二条','第三条','第四条','第五条']
                },
                yAxis:{
                },
                //设置图表数据
                series: [
                    {
                        // 设置当前这组数据的数据描述
                        name: '销量',
                        // 设置当前这组数据需要显示的形式(bar:条形图;pie:饼图;line:折线图;radar:雷达图;tree:树图;)
                        type: 'line',
                        // 当前这组数据每个数据点的值
                        data: [89,67,54,87,44]
                    }
                ]
            };
            // 将图表的配置变量赋值给图表,完成图表的设置(千万不能忘了,否则图表不会显示)
            chart.setOption(option);
        }
</script>

雷达图

<script>
        // 页面加载完成后调用的方法(通过body标签中的onload(Load())实现调用)
        function Load(){
            var chart  = echarts.init(document.getElementById('chart'));
            //定义一个数据对象用于配置图表
            var option = {
            // 设置图表标题
            title: {
                //标题文本(支持 “\n” 换行)
                text: 'E-Charts教程'
            },
            // 设置图表图例
            legend: {
                data:['第一组','第二组']
            },
            // 雷达图专属样式(仅雷达图可用,且雷达图必须设置)
            radar: {
                // shape: 'circle',
                name: {
                    textStyle: {
                        color: '#fff',
                        backgroundColor: '#999',
                        borderRadius: 3,
                        padding: [3, 5]
                    }
                },
                // 指示器,配置雷达图维度(顶角)
                indicator: [
                    { name: 'one',max:100},
                    { name: 'two',max:100},
                    { name: 'three',max:100},
                    { name: 'four',max:100},
                    { name: 'fiver',max:100},
                ]
            },
            //设置图表数据
            series: [
                {
                    // 设置当前这组数据的数据描述
                    name: '销量',
                    // 设置当前这组数据需要显示的形式(bar:条形图;pie:饼图;line:折线图;radar:雷达图;tree:树图;)
                    type: 'radar',
                    // 当前这组数据每个数据点的值
                    data: [
                        {
                            value:[89,67,54,87,44],
                            name:'第一组'
                        },
                        {
                            value:[65,21,54,6,23],
                            name:'第二组'
                        }
                    ]
                }
            ]
        };
        // 将图表的配置变量赋值给图表,完成图表的设置(千万不能忘了,否则图表不会显示)
        chart.setOption(option);
    }
</script>

以上就是关于E-Chart的一些基本使用,具体的使用可以翻阅官方文档。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值