天天看点

echarts入门实例

    echarts是百度开源的前端统计报表框架,可以绘制各种曲线,饼图,直方图等等。在一般的统计报表项目中应用非常广泛,它是一个javascript框架,目前已经献给apache基金会了,所以也叫apache echarts。

     获取echarts库的办法很简单,可以直接在官网https://echartsjs.com/zh/download.html下载echarts源文件或者压缩文件,也可以通过npm install echarts安装到本地,我的示例中就是通过npm install echarts的方式安装的。

    echarts的使用很直观,也很容易懂,我们先来看一个简单的示例,折线图,通常,我们通过一个折线图来表现比如一天中的温度走势,篮球比赛中两队的比分走势等等。因为数据是离散的,但是他们之间也不会突然差别很大,所以可以通过折线来表示更直观,比如我们可以通过折线图来表示一款手机在2018年各个季度的销售情况,如下所示:

echarts入门实例

    实现这个折线图的代码如下:

<!doctype html>
<html>
  <head>
  	<meta charset="UTF-8"/>
	<title>echarts-demo</title>
	<script type="text/javascript" src="node_modules/echarts/dist/echarts.min.js"></script>
	<style type="text/css">
		html,body{
			margin:0;
			padding:0;
		}
		#container{
			width: 1000px;
			margin:0 auto;
			background: #fafafc;
			height:400px;
		}
	</style>
  </head>
  <body>
  	<div id="container"></div>
  	<script type="text/javascript">
  		var myChart = echarts.init(document.getElementById("container"));
  		var option = {
  			title:{
  				text:"销售额"
  			},
  			tooltip:{},
  			legend:{
  				data:["销量"]
  			},
  			xAxis:{
  				data:["1","2","3","4"]
  			},
  			yAxis:{},
  			series:[{
  				name:'mobile季度销量',
  				type:'line',
  				data:[190,220,230,250]
  			}]
  		};
  		myChart.setOption(option);

  	</script>
  </body>

</html>
           

    整个代码很简单,主要思路是先引入所需的echart.min.js,然后在html body中增加一个id="container"的div,并且给出这个div元素的宽度和高度,我们在绘图的时候,只需要调用一次初始化方法和一次设置配置项的方法即可。chart = echarts.init(div),chart.setOption(opts);

    至于这个opts,是一个js对象,包含了报表所需的基本元素,一般至少会有series,title,legend等这些属性。如果是折线图或者直方图,一般还有表示系统坐标的X轴和Y轴:xAxis与yAxis 。

    折线图的数据只有一组,看着很单调,其实他的数据series本来就是一个数组,可以传入多个数据对象,这样,我们看到的是多条线,可能他们会有交叉,如下图所示:

echarts入门实例

    而实现这个图形,我们只需要在series属性中增加一组数据即可:

series:[{
  name:'mobile季度销量',
  type:'line',
  data:[190,220,230,250]
},{
  name:'pc季度销量',
  type:'line',
  data:[200,198,240,245]
}]
           

    echarts还可以实现饼图,如下所示,饼图的代码:

<!DOCTYPE html>
<html  dir="ltr">
  <head>
    <meta charset="utf-8">
    <script type="text/javascript" src="node_modules/echarts/dist/echarts.min.js">

    </script>
    <title>piecharts</title>
    <style media="screen">
      html,body{margin:0;padding:0;}
      #container{width:800px;height:400px;margin:0 auto;}
    </style>
  </head>
  <body>
     <div class="" id="container">

     </div>
     <script type="text/javascript">
         var chart = echarts.init(document.getElementById("container"));
         var option = {
           title:{
             text:"饼图",
             left:"center",
             top:20,
             textStyle:{
               color:"#ccc"
             }
           },
           tooltip:{
             trigger:'item',
             formatter:'{a} <br/>{b}:{c} ({d}%)'
           },
           series:{
             name:"访问来源",
             type:"pie",
             radius:'50%',
             center:['50%','50%'],
             data:[
                 {value:335,name:"直接访问"},
                 {value:310,name:"邮件营销"},
                 {value:274,name:"联盟广告"},
                 {value:235,name:"视频广告"},
                 {value:400,name:"搜索引擎"}
             ].sort((a,b)=>a.value-b.value)
           }
         };
         chart.setOption(option);
     </script>
  </body>
</html>
           

    展示效果如下所示:

echarts入门实例

    我们可以通过tooltip属性来设置提示信息,提示信息默认有一个格式化属性formatter,如果我们什么都不填写,就是"{a}<br/>{b}:{c}",我们可以自定义,但是一般来说都逃不过{a},{b},{c}这些占位符代表的数据,一般而言,{a}代表series中的name属性值,而{c}代表series中的data对应的具体值,{b}根据不同的图形代表的值不一样,饼图中{b}代表series中data中的name,在有坐标的图中,表示横坐标的下标值xAxis->data[i]。如下所示:什么都不填写的情况下,饼图的tooltip:

echarts入门实例

    我们可以自定义这个tooltip的属性formatter:"{a}<br/>{b}:{c} ({d}%)" ,替换之后展示效果如下:

echarts入门实例

    与默认的tooltip有一些差别,但是基本上的提示信息都表示出来了。