echarts的简单使用(上课笔记)

目录

一. 

1.首先下载个echarts.js

2.引入echarts

3.准备一个dom容器

4.创建一个简单的饼图

 5.更多的详细的配置在官方文档里都有介绍 地址:Documentation - Apache EChartshttps://echarts.apache.org/zh/option.html#title

 二.

异步加载数据的时候需要导入一个jquery-2.2.4.js文件

 下载地址:        

 1.异步加载数据画折线图

2.异步加载数据画柱状图

 ​

 3.异步加载数据画饼图

4. 异步加载数据画漏斗图

5.异步加载数据画组合图

 


一. 

1.首先下载个echarts.js

地址:https://github.com/apache/incubator-echarts/tree/4.6.0/disticon-default.png?t=M3C8https://github.com/apache/incubator-echarts/tree/4.6.0/dist

2.引入echarts

<!--在head标签中添加对echarts的引用-->
		<script src="echarts.js"></script> //src="echarts.js文件的地址"

3.准备一个dom容器

<!--添加一个div,用来做图标渲染的容器-->
<div id="main" style="width: 600px;height: 400px;"</div>

4.创建一个简单的饼图

完整代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<!--在head标签中添加对echarts的引用-->
		<script src="echarts.js"></script>
	</head>
	<body>
		<!--添加一个div,用来做图标渲染的容器-->
		<div id="main" style="width: 600px;height: 400px;"</div>
			<!--js初始化和配置参数-->
			<script type="text/javascript">
//				初始化echarts实列 echarts.init()/
				var myChar = echarts.init(document.getElementById('main'));
		/*		var option = {
					  legend: {
						    top: 'bottom'
						  },
						 
					series:[
						{
							name:'miegui',
							type:'pie',
							radius:[40,180],
							center:['50%','50%'],
							roseType:'area',
							itemStyle:{
								borderRadius:8
							},
							data:[
								{value:4,name:'节日活动'},
								{value:3,name:'团购促销'},
								{value:2,name:'微信推广'},
								{value:5,name:'自愿'}
							]
						}
					]
					
				};*/ //这里是玫瑰图的代码
//				配置参数
				var option={
					title:{
						text:'会员入会渠道分布',
						left:'center'
					},
					legend:{
						orient:'vertical',
						left:'left'
					},
					series:[
						{
							name:'Acces',
							type:'pie',
							radius:'50%',
							data:[
								{value:4,name:'节日活动'},
								{value:3,name:'团购促销'},
								{value:2,name:'微信推广'},
								{value:5,name:'自愿'}
							],
							emphasis:{
								itemStyle:{
									shadowBlur:10,
									shadowOffsetX:0,
									shadowColor:'rgba(0,0,0,0.5)'
								}
							}
						}
					]
				};
				
//				渲染视图,使用刚刚指定的配置项和数据显示图表
				myChar.setOption(option);
			</script>
			
	</body>
</html>

 

 5.更多的详细的配置在官方文档里都有介绍 地址:Documentation - Apache EChartsicon-default.png?t=M3C8https://echarts.apache.org/zh/option.html#title

 二.

异步加载数据的时候需要导入一个jquery-2.2.4.js文件

 下载地址:        

jQueryicon-default.png?t=M3C8https://jquery.com/

js文件的数据在:链接:https://pan.baidu.com/s/1gETTtOmeSdNHKIsFPuBk_A 
提取码:vnoh

 1.异步加载数据画折线图

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="echarts.js"></script>
		<script src="jquery-2.2.4.js"></script>
	</head>
	<body>
		<div id="main" style="width: 600px;height: 400px;"></div>
		<script type="text/javascript">
			var myChart = echarts.init(document.getElementById('main'));
			//显示标题,图列和空的坐标轴
			myChart.setOption({
				title:{},
				tooltip:{trigger:'axis'},
				legend:{},
				calculable: true,
				xAxis:{
					type:'category',
					boundaryGap:false,
					data:[]
				},
				yAxis:{
					type:'value'
					
				},
				series:[{
					type:'line',
					symbol:'emptydiamond', //设置折现图中每个坐标点的符号 emptycircle:空心圆 emptycircle:空心圆
					data:[]
				}]
			});
			myChart.showLoading(); //数据加载完之前显示一段简单的loading动画
			var AREA=[]; //类别数组(用来存放取出的json数据)
			var LANDNUM=[];
			$.ajax({
				type:"get",
				url:"js/data1.json", //请求数据的地址
				dataType:"json", //返回的数据形式为json
				success:function (result){
					//请求内容成功时执行该函数内容result即为服务器返回的json对象
					$.each(result.jinJian, function(index,item) {
						AREA.push(item.AREA); //挨个取出类别并填入类别数组
						LANDNUM.push(item.LANDNUM);
					});
					myChart.hideLoading(); //隐藏加载动画
					myChart.setOption({ //加载数据图表
						xAxis:{
							data:AREA
						},
						series:[{
							data:LANDNUM
						}]
					});
				}
			});
			
		</script>
	</body>
</html>

2.异步加载数据画柱状图

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="echarts.js"></script>
		<script src="jquery-2.2.4.js"></script>
	</head>
	<body>
		<div id="main" style="width: 600px; height: 400px;"></div>
		<script type="text/javascript">
			var myChart = echarts.init(document.getElementById('main'));
			$.get('js/bar.json',function(data){
				myChart.setOption(Option={
					title:{
						text:'异步加载数据'
					},
					legend:{
						data:data.categories
					},
					xAxis:{
						data:data.categories
					},
					yAxis:{},
					series:[{
						type:'bar',
						data:data.data
					}]
				});
			
			});
		</script>
	</body>
</html>

 

 3.异步加载数据画饼图

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="echarts.js"></script>
		<script src="jquery-2.2.4.js"></script>
	</head>
	<body>
		<div id="main" style="width: 600px;height: 400px;"></div>
		<script type="text/javascript">
			$.ajax({
				type:'get',
				async:false,
				url:'js/pie.json',
				data:{},
				dataType:'json',
				success:function(result){
					if (result){
						bind(result);
					}
				},
				error:function(errorMsg){
					alert("加载数据失败");
				}
			});
			function bind(result){
				var myChart = echarts.init(document.getElementById('main'));
				var option = {
					tooltip:{
						trigger:'item',
						formatter: "{a} <br/>{b} : {c} ({d}%)"
					},
					legend:{
						orient : 'vertical',
			            x : 'left',
			            data:(function(){
			                    var res = [];
			                    var len = result.data_pie.length;
			                        for(var i=0,size=len;i<size;i++) {
			                         res.push({
			                             name: result.data_pie[i].name,
			                         });
			                        }
			                        return res;
			                })()
					},
					series:[{
						type:'pie',
						data:(function( ){
							var res=[];
							var len = result.data_pie.length;
								for(var i=0,size=len;i<size;i++) {
									res.push({
										name:result.data_pie[i].name,
										value:result.data_pie[i].value
									});
								}
								return res;
						})()
					}]
				};
				myChart.setOption(option);
			}
				
		</script>
	</body>
</html>

 

 

4. 异步加载数据画漏斗图

(这里俺画的有问题)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="echarts.js"></script>
		<script src="jquery-2.2.4.js"></script>
	</head>
	<body>
		<div id="main" style="width: 600px;height: 400px;"></div>
		<script type="text/javascript">
			$.ajax({
				type:'get',
				async:false,
				url:'js/funnel.json',
				data:{},
				dataType:'json',
				success:function(result){
					if (result){
						bind(result);
					}
				},
				error:function(errorMsg){
					alert("加载数据失败");
				}
			});
			function bind(result){
				var myChart = echarts.init(document.getElementById('main'));
				var option = {
					series:[{
						type:'funnel',
						left: '10%',
	      				width: '80%',
	      				label:{
	      					formatter: '{b}Expected'
	      				},
	      				labelLine: {
					        show: false
					    },
					    itemStyle: {
					        opacity: 0.7
					    },
					    emphasis: {
					        label: {
					          position: 'inside',
					          formatter: '{b}Expected: {c}%'
					        }
			        	},
			        	data: [
				        { value: 60, name: '生成订单30%' },
				        { value: 40, name: '支付订单20%' },
				        { value: 20, name: '完成交易15%' },
				        { value: 80, name: '放入购物车50%' },
				        { value: 100, name: '浏览商品100%' }
				      ]
					},
					{
						name: 'Actual',
					      type: 'funnel',
					      left: '10%',
					      width: '80%',
					      maxSize: '80%',
					      label: {
					        position: 'inside',
					        formatter: '{c}%',
					        color: '#fff'
					      },
					      itemStyle: {
					        opacity: 0.5,
					        borderColor: '#fff',
					        borderWidth: 2
					      },
					      emphasis: {
					        label: {
					          position: 'inside',
					          formatter: '{b}Actual: {c}%'
					        }
					      },
					      data:(function( ){
							var res=[];
							var len = result.list.length;
								for(var i=0,size=len;i<size;i++) {
									res.push({
										name:result.list[i].department,
										value:result.list[i].num
									});
								}
								return res;
						})()
					      
    				}]
			};
					myChart.setOption(option);
				}
		</script>
	</body>
</html>

 

5.异步加载数据画组合图

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="echarts.js"></script>
		<script src="jquery-2.2.4.js"></script>
	</head>
	<body>
		<div id="main" style="width: 800px; height: 600px;"></div>
		<script type="text/javascript">
			$.ajax({
				type:'get',
				async:false,
				url:'js/test.json',
				data:{},
				datatype:'json',
				success:function(result){
					if (result){
						bind(result);
					}
				},
				error:function(errorMsg){
					alert("加载数据失败");
				}
			});
			
			
					//请求内容成功时执行该函数内容result即为服务器返回的json对象
					
				
			function bind(result){
				var myChart = echarts.init(document.getElementById('main'));
				var option = {
					grid:{
						left:'10%',
						right:'35%',
						top:'16%',
						bottom:'6%',
						containLabel:true
					},
					xAxis:{
						type:'category',
						data:(function(){
			                    var res = [];
			                    var len = result.data_pie_bar.length;
			                        for(var i=0,size=len;i<size;i++) {
			                         res.push({
			                            
			                             value:result.data_pie_bar[i].name
			                             
			                         });
			                        }
			                        return res;
			                })()

					},
					yAxis:{
						type:'value'
					},
					radar:{
						indicator:[{
							name:'语文',
							max:'100'
						},{
							name:'数学',
							max:100
						},{
							name:'英语',
							max:100
						},{
							name:'化学',
							max:100
						},{
							name:'物理',
							max:100
						}],
						center:['83%','85%'],
						radius:80
					},
					
					
					
					tooltip:{
						trigger:'item',
						formatter: "{a} <br/>{b} : {c} ({d}%)"
					},
					/*legend:{
						orient : 'vertical',
			            x : 'left',
			            data:(function(){
			                    var res = [];
			                    var len = result.data_pie_bar.length;
			                        for(var i=0,size=len;i<size;i++) {
			                         res.push({
			                             name: result.data_pie_bar[i].name,
			                         });
			                        }
			                        return res;
			                })()
					},*/
					series:[{
						center:['83%','50%'],
						radius:'28%',
						type:'gauge',
						axisTick: {
					        splitNumber: 2,
					        lineStyle: {
					          width: 2,
					          color: '#999'
					        }
					      },
					      axisLine: { //简单来说就是外圈的宽度
					        roundCap: true,
					        lineStyle: {
					          width: 18
					        }
					      },
					       pointer: {
						        icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z',
						        length: '75%',
						        width: 7,
						        offsetCenter: [0, '5%']
						      },
					      
						detail:{
							formatter:'{value}'
						},
						title:{
							offsetCenter:[0,'10%'] //设置km/h的位置
						},
						data:(function(){
			                    var res = [];
			                    var len = result.data_gauge.length;
			                        for(var i=0,size=len;i<size;i++) {
			                         res.push({
			                             name: result.data_gauge[i].name,
			                             value:result.data_gauge[i].value
			                         });
			                        }
			                        return res;
			                })()
					},{
						type:'bar',
						data:(function(){
			                    var res = [];
			                    var len = result.data_pie_bar.length;
			                        for(var i=0,size=len;i<size;i++) {
			                         res.push({
			                         	
			                             value: result.data_pie_bar[i].value
			                         });
			                        }
			                        return res;
			                })()
					},{
						type:'pie',
						center:['83%','20%'],
						radius:['15%','20%'],
						data:(function( ){
							var res=[];
							var len = result.data_pie_bar.length;
								for(var i=0,size=len;i<size;i++) {
									res.push({
										name:result.data_pie_bar[i].name,
										value:result.data_pie_bar[i].value
									});
								}
								return res;
						})()
					},
					{
						type:'radar',
						center:['83%','85%'],
						data:(function( ){
							var res=[];
							var len = result.data_radar.length;
								for(var i=0,size=len;i<size;i++) {
									res.push({
										value:result.data_radar[i].value
									});
								}
								return res;
						})()
					}
					
					
					
					
					]
				};
				myChart.setOption(option);
			}
			
			
		</script>
	</body>
</html>

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值