echarts 柱状折线图(折叠柱状图)月年汇总

news2024/11/25 12:25:32

echarts柱状折线图 前几项是按月计算,最后一列是年份这种情况如何实现呢?

如下图

或者
在这里插入图片描述

代码如下:
图一代码:

<e-charts :option="option5" class="chart7"></e-charts>
const option5 =  {
        tooltip: {
            trigger: 'none'
        },
        lengend : {
            show: false
        },
        yAxis: [
            {
                type: 'value',
                show: true,
                id: '0',
                interval: 10,
                splitLine: {
                    lineStyle: {
                        color: 'rgba(255,255,255,.3)',
                    }
                }, 
                axisLabel: {
                    show: false
                },
            },//y轴一 对应月份y轴
            {
                type: 'value',
                show: false,
                id: '1'
            }, //y轴二 对应年份y轴
            {
                type: 'value',
                show: false,
                id: '2'
            } //y轴三 对应折线图y轴
        ],
        xAxis: [
        {
            type: 'category',
            data: monthData, // ['7月','8月','9月','今年']
            axisLabel: {
                padding: [0,0,0,40],
                formatter: (() => {
                    return (value, index) => {
                        const isLast = value === '今年'
                        const label = isLast? `{a|${value}}` : `{b|${value}}`
                        return label
                        }})(),
                rich: {
                    a: {
                        padding: [0,0,0,20],
                        align: 'right',
                    },
                    b: {
                        padding: [0,0,0,-80],
                    }
                }
            },
            axisTick: {
                alignWithLabel: false
            } //x轴这样设置是因为数据单个对应,设置位置偏移对应x轴的文字 不然会整体看着往左边偏了
        }
        ],
        grid: {
            top: 30,
            bottom: 30,
            right: 50,
            left: 50,
        },
        series: [
            {
                type: 'bar',
                name: '受理',
                data: SLData1, // data 格式为  ['7月数据','8月数据','9月数据','']  最后一项固定为空 
                barMaxWidth: '10%',
                itemStyle: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                        { offset: 0, color: 'rgba(63, 252, 185, 1)' },
                        { offset: 1, color: 'rgba(9, 157, 5, 1)' }
                    ])
                },
                label: {
                    position: 'top',
                    distance: 10,
                    show: true,
                    fontSize: '11',
                    color: '#fff'
                }
            },
            {
                type: 'bar',
                name: '设置',
                data: SZData1,  // data 格式为  ['7月数据','8月数据','9月数据','']  最后一项固定为空 
                barMaxWidth: '10%',
                itemStyle: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                        { offset: 0, color: 'rgba(255, 242, 178, 1)' },
                        { offset: 1, color: 'rgba(255, 107, 90, 1)' }
                    ])
                },
                label: {
                    position: 'top',
                    distance: 10,
                    show: true,
                    fontSize: '11',
                    color: '#fff'
                }
            },
            {
                type: 'bar',
                name: '139',
                data: OTData1,  // data 格式为  ['7月数据','8月数据','9月数据','']  最后一项固定为空 
                barMaxWidth: '10%',
                itemStyle: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                        { offset: 0, color: 'rgba(90, 172, 255, 1)' },
                        { offset: 1, color: 'rgba(110, 68, 255, 1)' }
                    ])
                },
                label: {
                    position: 'top',
                    distance: 10,
                    show: true,
                    fontSize: '11',
                    color: '#fff'
                }
            },
             {
                type: 'bar',
                data: SLData, // data 格式为  ['','','','今年数据']  前三项固定为空 
                name: '受理',
                barMaxWidth: '10%',
                yAxisIndex: '2',
                itemStyle: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                        { offset: 0, color: 'rgba(63, 252, 185, 1)' },
                        { offset: 1, color: 'rgba(9, 157, 5, 1)' }
                    ])
                },
                label: {
                    position: 'top',
                    distance: 10,
                    show: true,
                    fontSize: '11',
                    color: '#fff'
                }
            },
            {
                type: 'bar',
                data: SZData,   // data 格式为  ['','','','今年数据']  前三项固定为空 
                name: '设置', 
                barMaxWidth: '10%',
                yAxisIndex: '2',
                itemStyle: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                    { offset: 0, color: 'rgba(255, 242, 178, 1)' },
                        { offset: 1, color: 'rgba(255, 107, 90, 1)' }
                    ])
                },
                label: {
                    position: 'top',
                    distance: 10,
                    show: true,
                    fontSize: '11',
                    color: '#fff'
                }
            },
            {
                type: 'bar',
                data: OTData,  // data 格式为  ['','','','今年数据']  前三项固定为空 
                name: '139',
                barMaxWidth: '10%',
                yAxisIndex: '2',
                itemStyle: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                        { offset: 0, color: 'rgba(90, 172, 255, 1)' },
                        { offset: 1, color: 'rgba(110, 68, 255, 1)' }
                    ])
                },
                 label: {
                    position: 'top',
                    distance: 10,
                    show: true,
                    fontSize: '11',
                    color: '#fff'
                }
            },
            {
                name: '受理',
                type: 'line',
                yAxisIndex: '1',
                xAxisIndex: '1',
                data: SLData1, // data 格式为  ['7月数据','8月数据','9月数据','']  最后一项固定为空 
                lineStyle: {
                    type:'dotted'  
                },  
                color: 'rgba(28, 191, 124, 1)'
            },
            {
                name: '设置',
                type: 'line',
                yAxisIndex: '1',
                xAxisIndex: '1',
                data: SZData1, // data 格式为  ['7月数据','8月数据','9月数据','']  最后一项固定为空 
                lineStyle: {
                    type:'dotted'  
                },
                color: 'rgba(252, 228, 168, 1)',
                
            },
            {
                name: '139',
                type: 'line', 
                yAxisIndex: '1',
                xAxisIndex: '1',
                data: OTData1, // data 格式为  ['7月数据','8月数据','9月数据','']  最后一项固定为空 
                lineStyle: {
                    type:'dotted'  
                },
                color: 'rgba(88, 168, 255, 1)'
            }
        ]
}
// 设置x轴偏移到柱状图正下方
option5.xAxis[1] = {
    type: 'value',
    max: option5.xAxis[0].data.length * 100,
    show: false
}

错误的显示如下 红色代表今年 ,就不是最后一列汇总今年的数据了
在这里插入图片描述

图二代码:

<div class="btm-zhu">
    <e-charts :option="option3" class="chart2"></e-charts>   
</div>
const option3 = computed(()=>{
    return {
        tooltip: {
            trigger: 'none'
        },
        color: ['rgba(31, 219, 181, .6)','#1B77E3'],
        yAxis: [
            {
                type: 'value',
                show: false,
                // max: 100,
                id: '0'
            },  //y轴一 对应月份y轴
            {
                type: 'value',
                show: false,
                id: '1'
            }, //y轴二 及年份对应y轴
            {
                type: 'value',
                show: false,
                max: 100,
                id: '2'
            } // y轴三
        ],
        grid: {
            top: 40,
            right: 0,
            x: 10,
            x2: 10,
            y2: 30
        },
        xAxis: {
            type: 'category',
            data: monthData // 此处对应 7月 ,8月, 9月, 今年 (x轴底部单位)
        },
        splitLine: {
            show: true,    // 是否显示分隔线。默认数值轴显示,类目轴不显示
            interval: '0',    // 坐标轴刻度标签的显示间隔,在类目轴中有效.0显示所有        
            color: ['#ccc'], //color分隔线颜色,可设置单个颜色,也可设置颜色数组,分隔线会按数组中颜色顺序依次循环设置颜色
            width: 3, // 分隔线线宽
            type: 'solid', // 坐标轴线线的类型(solid实线类型;dashed虚线类型;dotted点状类型)
        },
        label: {
            normal: {
                show: true,
                position: 'top',
                formatter: '本月',
                textStyle: {
                    color: '#fff'
                }
            }
        },
        series: [
            {
                type: 'bar',
                barMaxWidth: '24',
                barGap: '-110%',  
                z: 2,
                label: {
                    show: true,
                    fontSize: 10,
                    color: '#fff'
                },
                yAxisIndex: '0',
                data: mdData3  // data中存7 8 9 月数据1 
            },
            {
                type: 'bar',
                barMaxWidth: '30',
                z: 1,
                label: {
                    show: true,
                    position: 'top',
                    distance: '-20',
                    fontSize: 10,
                    color: '#fff'
                },
                yAxisIndex: '0',
                data: mdData4 // data中存7 8 9 月数据2
            },
            {
                type: 'bar',
                barMaxWidth: '24',
                barGap: '-110%',  
                z: 2,
                label: {
                    show: true,
                    fontSize: 10,
                    color: '#fff'
                },
                tooltip: {
                    show: true
                },
                yAxisIndex: '1',
                data: mdData1 // data中存 今年数据1
            },
            {
                type: 'bar',
                barMaxWidth: '30',
                z: 1,
                label: {
                    show: true,
                    position: 'top',
                    distance: '-20',
                    fontSize: 10,
                    zIndex: 10,
                    color: '#fff'
                },
                yAxisIndex: '1',
                data: mdData2 // data中存今年数据2
            },
            {
                type: 'bar',
                barMaxWidth: '50',
                label: {
                    show: true,
                    position: 'top',
                    distance: '0',
                    fontSize: 10,
                    color: '#fff',
                    formatter: (params)=> {
                        switch (params.dataIndex) {
                            case 0:
                                return ((mdData3[0]/mdData4[0])*100).toFixed(2)+"%";
                            case 1: 
                                return ((mdData3[1]/mdData4[1])*100).toFixed(2)+"%";
                            case 2: 
                                return ((mdData3[2]/mdData4[2])*100).toFixed(2)+"%";
                            case 3: 
                                return ((mdData1[3]/mdData2[3])*100).toFixed(2)+"%"
                        }
                        
                    }

                },
                itemStyle: {
                    color: 'transparent'
                },
                yAxisIndex: '2',
                data: [100,100,100,100], //data存百分比数据  透明的 不然没法显示顶部白色文字占比
            }
           
        ]
    }
})

主要是靠设置多个y轴及x轴, y轴是为了年份数据不按月份数据为单位,会出现年份数据特别高,月份数据特别矮的情况
x轴则是按所需展示月份进行设置 当label数据特别多时 可以采用重复设置series内数据的方式, 一个label设置为inner
一个设置为outside这种形式 当label在柱状图顶部并且位置一样的时候可以采用设置柱状图为透明底,高度为100%的形式。

解释一下为什么要设置x轴偏移:
是因为 数据和x轴对应情况下,年份数据设置为空 [‘7月数据’,‘8月数据’,‘9月数据’,’ '] echarts 会保留年份数据的空白位置宽度,和x轴对应起来就是歪的
在这里插入图片描述

红色年份数据为空字符串 保留位置的情况下 7月会往右偏,所以和7 8 9 月数据对应看起来是往右偏了,所以要设置x轴偏移调回来

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1097654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python数据分析实战-二维数组转一维数组的几种方法总结(附源码和实现效果)

实现功能 二维数组转一维数组的几种方法。 实现代码 import numpy as np# 二维数组 array_2d np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])# 法1&#xff1a;将二维数组转换为一维数组 array_1d array_2d.flatten() print(法1&#xff1a;, array_1d)# 法2&#xff1a;将二…

揭秘成熟互联网团队:团队成员包括哪些岗位?

文章目录 &#x1f34a; 岗位&#x1f389; 1. 产品经理&#x1f389; 2. UI/UX设计师&#x1f389; 3. 前端工程师&#x1f389; 4. 后端工程师&#x1f389; 5. 数据分析师&#x1f389; 6. 运营专员&#x1f389; 7. 测试工程师&#x1f389; 8. 项目经理&#x1f389; 9. 运…

个人轻博客PHP开源系统/溯雪Sxlog轻博客源码/洁干净轻/占内存极低/php源码

源码简介&#xff1a; 溯雪(sxlog)它是一款很简洁越低内存的轻博客程序&#xff0c;整个程序包不到200KB&#xff0c;占内存极小&#xff0c;比一张照片都要小很多。简洁高效&#xff0c;占用空间内存极小&#xff0c;而且它不依赖任何数据库&#xff0c;不依赖富文本编辑器&a…

高效PPT制作与演示技巧大揭秘

PPT是职场必备技能&#xff0c;尤其在商务活动中&#xff0c;企业宣传、项目提案、路演宣讲……都需要用好PPT。然而&#xff0c;很多人的PPT效率低、效果差&#xff0c;客户不认可、老板不满意。 PPT不仅是办公软件&#xff0c;更是以汇报对象为中心、以共同的目标为导向、以…

Spring AOP归纳与总结

前言 AOP的核心思想是面向切面编程。AOP规范定义了多种概念&#xff0c;常用的aop框架有spring aop和AspectJ&#xff0c;两者功能和性能差异较大&#xff0c;现在默认的AOP框架是AspectJ&#xff0c;下面逐渐归纳其相关概念、功能及实现原理。 1. 概念 1. 切面&#xff1a;…

抖音直播招聘报白通过率是百分之99劳务公司报白有哪些好处?

首先抖音已经成为短视频流量最大的平台&#xff0c;抖音日活用户8亿&#xff0c;但是短视频招聘的企业不足300家&#xff0c;能直播招聘的不企业或者人力资源公司只有8000家&#xff0c;根据这些数据我们就能看到抖音招聘领域有巨大的空间&#xff0c;是以后的朝阳产业。 抖音…

网卡介绍篇

目录 1.什么是网卡&#xff1f; 2.网卡的演进 3.网卡的主要功能 4.服务器网卡介绍 5.服务器网卡的分类 6.网卡接口介绍 7.业界网卡主流厂商 8.SmartNIC概念介绍 9.SmartNIC产业发展趋势 10.SmartNIC实现 10-1.实现形式 10-2.SmartNIC不同实现技术对比 11.Mellanox…

Redis常见面试题总结

Redis(Remote Dictionary Server) 由Salvator Sanfilippo在2009年开源的使用 ANSI C 语言编写、高性能、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库&#xff0c;并提供多种语言的 API 的非关系型数据库。 与传统数据库不同的是 Redis 的数据是存…

一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句

一、目的 由于Hive处理好的结果数据要同步到ClickHouse中&#xff0c;因此需要在在海豚调度器中执行ClickHouse的ADS层的建库建表语句 二、执行步骤 &#xff08;一&#xff09;情形一&#xff1a;ClickHouse和海豚在同一服务器上 1、直接在海豚中创建执行SQL文件脚本的工作…

ESD接地实时监控在工业生产中的作用是什么

ESD&#xff08;静电放电&#xff09;接地实时监控在工业生产中起着非常重要的作用。ESD是一种静电现象&#xff0c;它可能会在生产过程中对设备、产品和人员造成损害。ESD接地实时监控系统可以帮助生产企业及时检测并预防ESD事件&#xff0c;从而保护设备和产品的质量&#xf…

【编码魔法师系列_构建型2.1】单例模式「饿汉式」(Singleton Pattern)

学会设计模式&#xff0c;你就可以像拥有魔法一样&#xff0c;在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们&#xff08;GoF&#xff09;凝聚出来的最佳实践&#xff0c;可以提高代码的可读性、可维护性和可重用性&#xff0c;从而让我们的开发效率更高。通…

Java实现图片转文字!(OCR实现)

今天给大家分享一个Java实现OCR&#xff08;图片转文字&#xff09;的方法。 具体实现是把tess4j整合到一个SpringBoot项目中。 下面是详细步骤 什么是Tess4j 在实现OCR之前&#xff0c;先要分清楚Tesseract和Tess4j的区别。 Tesseract是一个开源的光学字符识别&#xff08…

Python数据分析实战-applymap、apply、map有什么区别?(附源码和实现效果)

实现功能 applymap&#xff1a;applymap 是 DataFrame 对象的方法&#xff0c;用于对 DataFrame 中的每个元素应用一个函数。它将函数应用于 DataFrame 的每个元素&#xff0c;并返回一个新的具有相同形状的 DataFrame。applymap 通常用于对 DataFrame 中的每个单元格进行元素…

线性系统的根轨迹分析

根轨迹法&#xff1a;通过求开环零点和开环极点&#xff0c;来画出闭环极点在S平面的位置。 也是用来判断系统稳定性的。 定义&#xff1a;根轨迹是指系统特征方程式的根(闭环极点&#xff09;随系统参量变化 在S平面 上运动而形成的轨迹。 开环传递函数里边的一个参数&…

还不会在MT4用Renko,FPmarkets澳福手把手教你一分钟学会

很多投资者还不会在MT4上使用Renko&#xff0c;让FPmarkets澳福通过一个具体的例子来探讨&#xff0c;Renko图表指标在MT4平台上的应用&#xff0c;以AG Renko为例。 首先&#xff0c;投资者需要解压缩下载的档案&#xff0c;并将其移动到MT4的“指标”文件夹中。重启MetaTrade…

1-k8s1.24-底座搭建-基于containerd

文章目录 一、服务器准备二、安装Containerd三、安装k8s四、安装部署dashboard ps&#xff1a;第一遍搭建ks8的时候&#xff0c;由于k8s在1.24版本之后就放弃了对docker的支持&#xff0c;如果要继续使用docker需要自己加载插件。所以一开始就是直接使用 k8s1.24containerd进行…

COMPFEST 15 - Preliminary Online Mirror I. Imagination Castle(dp递推+sg函数思想)

题目 n*m(1<n,m<2e5)的棋盘&#xff0c;有k(k<min(n*m,2e5))个特殊位置&#xff0c; 初始时在(1,1)位置&#xff0c;Chaneka和Bhinneka两人玩游戏&#xff0c;Chaneka先手&#xff0c; 当你在(x,y)位置时&#xff0c;下一步可以走到同一行靠右的位置(xx,y>y)或同…

格式化前做好备份,内存卡数据安全无忧

内存卡格式化会怎么样&#xff1f;了解格式化原理的小伙伴都明白&#xff0c;格式化操作会清除内存卡上的所有数据&#xff0c;包括文档、照片、视频等文件。 因此&#xff0c;在格式化内存卡之前&#xff0c;我们需要将重要的数据进行备份以免丢失。那么&#xff0c;内存卡格式…

408-2015

一、单项选择题 1.已知程序如下。 int S(int n){return n<0?0:s(n-1)n; } void main(){cout<<S(1); }程序运行时使用栈来保存调用过程的信息&#xff0c;自栈底到栈顶保存的信息依次是_____。 A.main()->S(1)->S(0) B.S(0)->S(1)->main() …

uniapp安卓 华为商店 vivo商店 oppo 小米 上架问题 Android中怎么才能不提前申请权限

问题描述 提交 小米 oppo 市场审核失败&#xff0c;原因是提前向用户申请开启通讯录、定位、短信、录音、相机和日历等权限。 解决方案&#xff1a; 是否有使用 READ_PHONE_STATE 权限&#xff0c;如果有使用 oaid 代替&#xff1b;是否有使用第三方 SDK&#xff0c;如果有关…