echarts多图控制

var x=[],_x=[],_series=[],_i=0,leftGrid=[[{
		        left: "60px",right: "4%",height: '80%',top:116,
		    }],[{
		        left: "60px",right: "4%",height: '35%',top:116,
		    }, {
		        left: "60px",right: "4%",top: '60%',height: '35%'
		    }],[{
		        left: "60px",right: "4%",height: '20%',top:116,
		    }, {
		        left: "60px",right: "4%",top: '45%',height: '20%'
		    }, {
		        left: "60px",right: "4%",top: '75%',height: '20%'
		    }],[{
		        left: "60px",right: "4%",height: '13%'
		    }, {
		        left: "60px",right: "4%",top: '32%',height: '13%'
		    }, {
		        left: "60px",right: "4%",top: '53%',height: '13%'
		    }, {
		        left: "60px",right: "4%",top: '75%',height: '13%'
		    }]],yAxis=[],leftdataZoom=[[
              	{show: true,realtime: true},{type: 'inside',realtime:true}
	                ],[
						{show: true,realtime: true,xAxisIndex: [0, 1]},{type: 'inside',realtime: true,xAxisIndex: [0, 1]}
	                ],[   
	                    {show: true,realtime: true,xAxisIndex: [0,1]},{type: 'inside',realtime: true,xAxisIndex: [0,1,2]},{type: 'inside',realtime: true,xAxisIndex: [0,1,2]},
            	],[
					{show: true,realtime: true,xAxisIndex: [0,1]},{type: 'inside',realtime: true,xAxisIndex: [0,1,2]},{type: 'inside',realtime: true,xAxisIndex: [0,1,2,3]},{type: 'inside',realtime: true,xAxisIndex: [0,1,2,3]}
               ]],newlegend=[[
                              {type:"scroll",icon:'line',data:[""], top: '10%', x: 'center'}
               ],[
                  {type:"scroll",icon:'line',data:[""], top: '10%', x: 'center'},
                  {type:"scroll",icon:'line',data:[""], top: '55%', x: 'center'}
                  ],[
				  {type:"scroll",icon:'line',data:[""], top: '10%', x: 'center'},
                  {type:"scroll",icon:'line',data:[""], top: '40%', x: 'center'},
                  {type:"scroll",icon:'line',data:[""], top: '70%', x: 'center'}
                  ]];
			var bardata = data.column;
	    	var legends = {};
	    	for(var i=0;i<bardata.length;i++){
	    		var xdata = [],legend_=[];
	    		for(var j in bardata[i].data){
	    			var ydata=[];
	    			for(var name in bardata[i].data[j]){
	    				if(j=="Ua"){
	    					xdata.push(name);//x轴数组
	    				}
	    				ydata.push(bardata[i].data[j][name][1]);//y轴数组
	    			}
	    			var legendname = j=="Ua"?"A相("+bardata[i].name+")":j=="Ub"?"B相("+bardata[i].name+")":"C相("+bardata[i].name+")";
	    			legend_.push(legendname);
	    			_series.push({
	    				type:"bar",
	    				name:legendname,
	    				showSymbol: false,
	    				data:ydata,
	    				xAxisIndex:i,
	    				yAxisIndex: i
	    			})
	    			
	    		}
	    		legends[i] = legend_;//以组形式存
	    		for(var g=0;g<newlegend[i].length;g++){//遍历有几个布局
    				newlegend[i][g].data = legends[g];//为布局里的data赋值
    			} 
	    		newlegends=newlegend[i];//取第几个布局
	    		_x.push({
	    			data:xdata,
	    			name:"谐波次数",
	    			nameGap:5,
	    			gridIndex:i
	    		})
	    		yAxis.push({
					type : "value",
					scale : true,
					/*axisLabel:{
						formatter: function (value){
							return value+"V"
						}
					},*/
					name:"V",
					gridIndex:i
				});
	    		_i=i;
	    	}
	    	fillecharts({
  		  		id:"boxcharts",
  		  		x:_x,
  		  		legend:newlegends,
  		  		yAxis:yAxis,
  		  		series:_series,
  		  		grid:leftGrid[_i]
  		  	});
		}
	})
}
function fillecharts(obj){
    if (myChart != null && myChart != "" && myChart != undefined) {
        myChart.dispose();
    }
	myChart = echarts.init(document.getElementById(obj.id));
	var option = {
		tooltip: {
	        trigger: 'axis',
	        axisPointer: {
	            animation: false
	        }
	    },
		color:["#51bffd","#8eec7f","#d78e51","#c92840","#50bfff","#f7ba2a","#7B68EE","#13ce66","#8B4513","#8492a6","#fc8675","#008080","#0000FF","#FFFF00","#FF0000","#FFEFD5","#F08080"],
		title: {
            text:'电压谐波频谱',
            left:'center',
            top:10,
            itemGap:16,   //主副标题之间的间距
            textStyle:{
                color:'#666',
                /*fontStyle:'normal',
                fontWeight:'bold',*/
                //字体大小
            		fontSize:20
            },
            subtext:mintitle,
		    subtextStyle:{
		        color:'#9f999f',
		        fontWeight:'bold',
		           fontSize:12
		    }
        },
		xAxis: obj.x,
	    yAxis:obj.yAxis, 
	    legend:obj.legend,
	    grid: obj.grid,
	    series: obj.series
	};
	if(echartsArr.indexOf(myChart)==-1){//不存在
		echartsArr.push(myChart);
	}
	myChart.setOption(option,true);
	window.addEventListener("resize",function(){
		myChart.resize();
	});
}

效果图:

 

2、固定三图

function fileEchart(obj){
	if (line != null && line != "" && line != undefined) {
		line.dispose();
    }
	line = echarts.init(document.getElementById("echarts_"));
	var option = {
	    title: [
        {
	        text: obj.number+'次谐波含有率曲线',
	        left:'center',
	        top: 2, 
	        itemGap:10,   //主副标题之间的间距
	        textStyle:{
	            color:'#666',
	            //字体大小
	        		fontSize:20
	        },
	        subtext: '时间范围: '+obj.time,
	        subtextStyle:{
		        color:'#9f999f',
		        fontWeight:'bold',
		           fontSize:12
		    },
	    	x: 'center'
	    }, {
	    	top: '7%',
	        left: '7%',
	        text: '电压含有率@低压电房'+obj.name,
        	textStyle:{
	        		fontSize:16
	        }
	    }, {
	        top: '35%',
	        left: '7%',
	        text: '电流含有率@低压电房'+obj.name,
	    	textStyle:{
	        		fontSize:16
	        }
	    },{
	    	top: '64%',
	        left: '7%',
	        text: '电流含有量@低压电房'+obj.name,
        	textStyle:{
	        		fontSize:16
	        }
	    }],
	    grid: [{
	    	top:'10%',
	    	left: '5%',
	        right: '3%',
	        bottom: '68%'
	    }, {
	        top: '38%',
	        left: '5%',
	        right: '3%',
	        bottom: '38%'
	    },{
	    	top: '68%',
	    	left: '5%',
	        right: '3%',
	    }],
	    legend: {
	        data: ['A相','B相','C相'],
	        left:'left',
	        top:10,
	        left:'20%',
	        icon:'line',
	        color:['#BECDFF','#CC6633','#f7ba2a']
	    },
	    tooltip: {
	        trigger: 'axis'
	    },
	    xAxis: [{
	        data: obj.x,
	        gridIndex: 0,
	        axisLabel: {
                show:false,
            }
	    }, {
	        data: obj.x,
	        gridIndex: 1,
	        axisLabel: {
                show:false,
            }
	    },{
	    	data: obj.x,
	    	gridIndex: 2,
	    	axisLabel: {
                rotate:25
            }
	    }],
	    yAxis: [{
	    	type: 'value',
	    	name: '%',
	        splitLine: {show: false},
	        gridIndex: 0,
	    }, {
	    	type: 'value',
	    	name: '%',
	        splitLine: {show: false},
	        gridIndex: 1,
	    },{
	    	type: 'value',
	    	name: 'A',
	    	splitLine: {show: false},
	        gridIndex: 2,
	    }],
	    series: [{
	        type: 'line',
	        name: 'A相',
	        color: '#BECDFF',
	        showSymbol: false,
	        data: obj.rateList_V[0],
	        xAxisIndex: 0,
	        yAxisIndex: 0
	    },{
	        type: 'line',
	        name: 'B相',
	        color: '#CC6633',
	        showSymbol: false,
	        data: obj.rateList_V[1],
	        xAxisIndex: 0,
	        yAxisIndex: 0
	    },{
	        type: 'line',
	        name: 'C相',
	        color: '#f7ba2a',
	        showSymbol: false,
	        data: obj.rateList_V[2],
	        xAxisIndex: 0,
	        yAxisIndex: 0
	    },{
	        type: 'line',
	        name: 'A相',
	        color: '#BECDFF',
	        showSymbol: false,
	        data: obj.rateList_A[0],
	        xAxisIndex: 1,
	        yAxisIndex: 1
	    },{
	        type: 'line',
	        name: 'B相',
	        color: '#CC6633',
	        showSymbol: false,
	        data: obj.rateList_A[1],
	        xAxisIndex: 1,
	        yAxisIndex: 1
	    },{
	        type: 'line',
	        name: 'C相',
	        color: '#f7ba2a',
	        showSymbol: false,
	        data: obj.rateList_A[2],
	        xAxisIndex: 1,
	        yAxisIndex: 1
	    },{
	        type: 'line',
	        name: 'A相',
	        color: '#BECDFF',
	        showSymbol: false,
	        data: obj.amountList_A[0],
	        xAxisIndex: 2,
	        yAxisIndex: 2
	    },{
	        type: 'line',
	        name: 'B相',
	        color: '#CC6633',
	        showSymbol: false,
	        data: obj.amountList_A[1],
	        xAxisIndex: 2,
	        yAxisIndex: 2
	    },{
	        type: 'line',
	        name: 'C相',
	        color: '#f7ba2a',
	        showSymbol: false,
	        data: obj.amountList_A[2],
	        xAxisIndex: 2,
	        yAxisIndex: 2
	    }]
	};
	line.setOption(option,true);
	window.addEventListener("resize",function(){
		line.resize();
	});
}

效果图:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts是一款开源的、基于JavaScript的可视化图表库,广泛应用于数据可视化领域。ECharts提供了多种图表类型供用户选择,包括线图、柱状图、饼图等。 要实现ECharts多图形轮播,可以借助ECharts的异步加载功能和定时器功能。首先,通过异步加载的方式获取需要展示的多个图形数据。可以通过Ajax请求或者其他方式从服务器获取数据,并将数据存储在一个数组中。 接着,使用定时器控制图形的切换。通过设置一个计时器,每隔一段时间,切换数组中的数据并渲染相应的图形。可以使用ECharts的setOption()方法来实现切换图形的效果。 具体实现步骤如下: 1. 异步加载图形数据:使用Ajax等方式从服务器获取图形数据,并将数据存储在一个数组中。 2. 初始化ECharts实例:通过new echarts.init()方法初始化一个ECharts实例,并通过echarts.setOption()方法设置初始图形的数据。 3. 定时器控制图形切换:使用JavaScript的定时器函数setInterval(),每隔一段时间,切换数组中的图形数据,并通过echarts.setOption()方法重新渲染图形。 下面是一个简单的示例代码: ```javascript // 异步加载图形数据,存储在数组中 var chartData = [ { /* 图形数据1 */ }, { /* 图形数据2 */ }, { /* 图形数据3 */ } ]; // 初始化ECharts实例 var myChart = echarts.init(document.getElementById('chart')); // 设置初始图形数据 myChart.setOption(chartData[0]); // 定时器控制图形切换 var index = 0; setInterval(function() { index = (index + 1) % chartData.length; // 切换到下一个图形数据 myChart.setOption(chartData[index]); // 渲染图形 }, 3000); ``` 上述代码中,'chart'是HTML页面中用于展示图形的DOM元素的id,可以根据实际情况修改。通过获取图形数据并切换图形数据,可以实现ECharts多图形的轮播效果。 希望以上回答能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值