zoukankan      html  css  js  c++  java
  • 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一样的数据就会堆叠在一起
  • 相关阅读:
    人际交往的原则
    做事的八大原则
    做人要有三颗心,两种意,简称:三心二意
    基于docker Jenkins搭建持续集成自动化测试环境,管理、配置、运行 Node 节点与 Slave 分布式运行
    docker dockerfile使用详解
    OS + Linux Memory / NUMA / Non-Uniform Memory Access
    my live PC / ThinkPad_X13_Yoga_Gen_2 / 20W8001RUS
    0. 《RDMA杂谈》专栏索引
    RDMA read and write with IB verbs
    深入浅出全面解析RDMA
  • 原文地址:https://www.cnblogs.com/diantao/p/12618039.html
Copyright © 2011-2022 走看看