• echarts如何实现一组多柱,一柱显示多组数据且每个数据显示不同颜色


    这个问题的难点在于综合,分解下来有四个问题

    1、多个柱子为一组

    2、一个柱子显示多个数据

    3、一个柱子上有多少种数据就显示多少种颜色

    4、鼠标悬浮每个柱子显示不同数据

    以上四个问题,每一个单独实现都不难,难的在于如何用到一张图上

    来看看效果图:

    每一组三根柱子分别是一班,二班,三班

    上代码:

    const labelOption = {
    	show: true,
    	position: 'insideRight'
    }
    
    const tooltipOption = {
    	trigger: 'item',
    	axisPointer: {
    		type: 'shadow'
    	},
    	formatter: '一班<br />故障:10H 20%<br />运行:20H 20%<br />暂停:30H 20%<br />离线:25H 20%'
    }
    
    const data = {
    	color: ['#F56C6C', '#FFC53A', '#7CA870', '#999999'],
    	legend: {
                data: ['故障', '暂停', '运行', '离线']
    	},
    	tooltip: {
    		trigger: 'axis',
    		axisPointer: {
    			type: 'shadow'
    		}
    	},
    	grid: {
    		left: '3%',
    		right: '4%',
    		bottom: '3%',
    		containLabel: true
    	},
    	xAxis: [
    		{
    			type: 'category',
    			data: ['冲压机床#1', '冲压机床#2', '冲压机床#3', '冲压机床#4'],
    			axisTick: {
    				alignWithLabel: true
    			}
    		}
    	],
            yAxis: [
    		{
    			type: 'value',
    			axisLabel: {
    			    formatter: '{value}%'
    			}
    		}
    	],
    					    
    	series: [
    		{
    			name: '故障',
    			type: 'bar',
    			stack: '一班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [20, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '暂停',
    			type: 'bar',
    			stack: '一班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [21, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '运行',
    			type: 'bar',
    			stack: '一班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [22, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '离线',
    			type: 'bar',
    			stack: '一班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [23, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '故障',
    			type: 'bar',
    			stack: '二班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [20, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '暂停',
    			type: 'bar',
    			stack: '二班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [21, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '运行',
    			type: 'bar',
    			stack: '二班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [22, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '离线',
    			type: 'bar',
    			stack: '二班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [23, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '故障',
    			type: 'bar',
    			stack: '三班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [20, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '暂停',
    			type: 'bar',
    			stack: '三班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [21, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '运行',
    			type: 'bar',
    			stack: '三班',
    			label: labelOption,
    			barWidth: '10%',
    			data: [22, 30,40, 60],
    			tooltip: tooltipOption
    		},
    		{
    			name: '离线',
    			type: 'bar',
    			stack: '三班',
    			label: labelOption,
    		        barWidth: '10%',
    			data: [23, 30,40, 60],
    			tooltip: tooltipOption
    		}
    	]
    }                                
    
    重点看stack,stack一样的数据就会堆叠在一起
  • 相关阅读:
    【SQLite操作】SQLite下载使用教程
    【VS】编译/生成解决方案时错误 未能写入输出文件“...objDebugxxx.exe”--“另一个程序正在使用此文件,进程无法访问
    Webstorm 快速补全
    JS 之循环 应用案例1
    elementUI的el-input和el-select宽度 一致
    SpringMVC 参数中接收之一 List
    VUE 之_this.da 和 this
    CSS 格式 设置标签间距 和 input slot
    Spring最简单构建一个后台{msg:"登录成功",code:200,data:null}
    VUE SpringCloud 跨域资源共享 CORS 详解
  • 原文地址:https://www.cnblogs.com/diantao/p/12618039.html
Copyright © 2020-2023  润新知