嵌套组合图

 https://www.makeapie.com/editor.html?c=xktSMh0ZzK

  	/// 整体混合图借鉴 他的地址为  https://gallery.echartsjs.com/editor.html?c=xrySKpOnjM
   ///   嵌套图借鉴 他的地址为  https://gallery.echartsjs.com/editor.html?c=xAi9VBmJLg
	
	var overviewChartID = 'overview-chart';
		var overviewTitle = ''; //标题
		var overviewSubTitle = echarts.format.formatTime('yyyy年MM月dd', new Date());

		//图表定位
		var chartGridTop = 40;
		var chartGridHeight = 100;

		//时间轴
		//SELECT WMSYS.WM_CONCAT('"'||TO_CHAR(TRUNC(SYSDATE, 'MM') + ROWNUM - 1, 'YYYY-MM-DD')||'"') DBTIME FROM DUAL CONNECT BY ROWNUM <= 30;
		var overviewDate = ["00:00", "00:05", "00:10", "00:15", "00:20", "00:25", "00:30"];

		//表格数据
		//SELECT WMSYS.WM_CONCAT(TRUNC(DBMS_RANDOM.VALUE(5, 60), 2)) DBTIME FROM DUAL CONNECT BY ROWNUM <= 30;
		var orddbhost1 = [19.55, 20.43, 57.46, 48.87, 26.33, 57.38, 42.1];
		var orddbhost2 = [23.31, 24.15, 26.17, 21.53, 20.46, 66.43, 21.11];
		var dbrl = [31, 15, 17, 53, 46, 26, 11];

		var orddbtime1 = [36.59, 35.56, 32.84, 26.37, 35.94, 26.25, 24.11];
		var orddbtime2 = [22.18, 24.76, 20.37, 28.09, 22.25, 26.75, 20.14, ];

		var orddbproc1 = [599, 302, 753, 695, 673, 558, 779, ];
		var ycrl1 = [59, 32, 73, 69, 63, 58, 79, ];

		//直角坐标系内绘图网格
		function makeGrid(top, height, opt) {
			return echarts.util.merge({
				left: 70,
				right: 60,
				top: top,
				height: height
			}, opt || {}, true);
		}

		//X轴生成器
		function makeXAxis(gridIndex, opt) {
			//避免X轴数据显示过于频繁
			axisLabelFlag = false;
			//  if (gridIndex % 2 == 0) {
			//      axisLabelFlag = true;
			//  }
			if(gridIndex == 3) {
				axisLabelFlag = true;
			}

			return echarts.util.merge({
				type: 'category',
				gridIndex: gridIndex,
				//统一时间轴数据
				data: overviewDate,
				axisLabel: {
					show: axisLabelFlag,
					/*          formatter: function(value) {
					              return echarts.format.formatTime('MM-dd', value);
					          }*/
				},
			}, opt || {}, true);
		}

		//Y轴生成器
		function makeYAxis(gridIndex, opt) {
			return echarts.util.merge({
				type: 'value',
				nameLocation: 'middle',
				nameGap: '40',
				gridIndex: gridIndex,
				nameTextStyle: {
					color: '#333'
				},
				axisTick: {
					show: false
				},
				axisLabel: {
					show: true
				},
			}, opt || {}, true);
		}

		//数据生成器
		function makeGridData(xAxisIndex, yAxisIndex, chartType, chartName, chartData, opt) {
			return echarts.util.merge({
				type: chartType,
				name: chartName,
				xAxisIndex: xAxisIndex,
				yAxisIndex: yAxisIndex,
				data: chartData,
			}, opt || {}, true);
		}

// 		var myChartOne = echarts.init(document.getElementById('NestingChart'));
		var option = {
			animation: false,
			//标题组件,包含主标题和副标题
			title: {
				x: 'center',
				text: overviewTitle,
				//      subtext: overviewSubTitle,
				//      padding: 0,
			},
			tooltip: {
				//移动端展示方式
				trigger: 'axis',
				transitionDuration: 0,
				confine: true,
				borderRadius: 4,
				borderWidth: 1,
				borderColor: '#333',
				backgroundColor: 'rgba(255,255,255,0.9)',
				textStyle: {
					fontSize: 12,
					color: '#333'
					 
				},
				  formatter:function(params){  //数据单位格式化  
                               var relVal = params[0].name;  //x轴名称  
                               relVal +="<div style='width:120px'>"
                               for (var i = 0, l = params.length; i < l; i++) {    
                                if(params[i].value){

                                   relVal +=  "<span  style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"+params[i].color+";'>" +'<span  style="display:block;padding-left:15px;margin-top:-4px">'+ params[i].seriesName + ' : ' + params[i].value+'</span>'+ "</span>"+'<br>';    
                                }
                               }  
                                   relVal +="</div>"
                               return relVal;    
                            }
			},

			//坐标轴指示器(axisPointer)的全局公用设置
			axisPointer: {
				type: 'shadow',
				link: {
					xAxisIndex: 'all'
				}
			},
			//直角坐标系内绘图网格
			grid: [
				makeGrid(chartGridTop, chartGridHeight),
				makeGrid(chartGridTop + (chartGridHeight + 25), chartGridHeight),
				makeGrid(chartGridTop + (chartGridHeight + 25) * 2, chartGridHeight),
				makeGrid(chartGridTop + (chartGridHeight + 25) * 3, chartGridHeight),

			],
			xAxis: [
				makeXAxis(0),
				makeXAxis(1),
				makeXAxis(2),
				makeXAxis(3),

			],
			yAxis: [
				makeYAxis(0, {
					name: '预测实际热量',
					 splitNumber: 3, //调整间隔
                    //  splitLine: {show: false},//去除网格线
				}),

				makeYAxis(1, {
					name: '天气数据',
                     splitNumber: 3,
				}),
				makeYAxis(2, {
					name: '预测实际能耗',

				}),
				makeYAxis(3, {
					name: '预测实际消耗',

				}),
				makeYAxis(0, {
					name: '热量对比',
                 splitLine:  false,//去除网格线
               
				})

			],
			//dataZoom 组件 用于区域缩放
			dataZoom: [{
				type: 'slider',
				xAxisIndex: [0, 1, 2, 3],
				realtime: true,
				//移动端展示方式
				handleSize: '140%',
			}],
			//每个系列通过 type 决定自己的图表类型
			series: [
				makeGridData(0, 0, 'bar', '预测热量', orddbhost1, {
					barGap: '-175%',
					barWidth: 10,
					z: 10,
					 itemStyle:{
                	normal:{
                		color:'#43CD80'
                	}
                },
					
				}),
				makeGridData(0, 0, 'bar', '实际热量', orddbhost2, {
					barWidth: 25,
					stack: 'total',
					    itemStyle:{
                	normal:{
                		color:'#778899'
                	} 
                },
				}),
				makeGridData(0, 4, 'line', '热量对比', dbrl,{smooth: true,	color:'#FF6A6A'}),

				makeGridData(1, 1, 'line', '预测气温', orddbtime1, {
					stack: 'DBTIME',smooth: true,	color:'#FFC125'
				}),
				makeGridData(1, 1, 'line', '实际气温', orddbtime2, {
					stack: 'DBTIME',smooth: true,color:'#63B8FF'
				}),

				makeGridData(2, 2, 'line', '预测实际能耗', orddbproc1, {smooth: true,color:'#BA55D3' }),
				makeGridData(3, 3, 'line', '预测热耗', ycrl1, {smooth: true,color:'#836FFF'}),
			]

		};

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值