web前端之vue和echarts的堆叠柱状图顶部显示总数、鼠标悬浮工具提示、设置图例的显示与隐藏、label、legend、tooltip
MENU
- 效果图
- html
- JavaScrip
- style
- 解析
效果图
html
<template><div><div><div id="idStackedColumnChart" style="width: 100%; height: 680px"></div></div></div>
</template>
JavaScrip
export default {name: "stackedColumnChart",mounted() {this.$nextTick(() => {this.handleStackedColumnChart();});},methods: {/*** 纵向数组求和* @param {Array} list*/verticalArraySummation(list) {let sumArray = [];for (let i = 0; i < list[0].data.length; i++) {let sum = 0;for (let j = 0; j < list.length; j++) sum += list[j].data[i];sumArray.push(sum);}return sumArray;},/*** 初始化图表*/handleStackedColumnChart() {let series = [{name: "示例1",color: "#ff0000",data: [120, 132, 101, 134, 90, 230, 210],},{name: "示例2",color: "#00ff00",data: [220, 182, 191, 234, 290, 330, 310],},{name: "示例3",color: "#0000ff",data: [150, 232, 201, 154, 190, 330, 410],},],len = series.length,zonghe = this.verticalArraySummation(series);series = series.map((item) => {return {name: item.name,itemStyle: {color: item.color,},data: item.data,};});let lenItem = {...series[len - 1],label: {normal: {show: true,position: "top",// 先把所有项的总和算出来,按照顺序放到zonghe数组中// 然后在方法中用下标对应上总和方法// return出来就是label文字的现实// formatter(params) {// return zonghe[params.dataIndex];// },formatter: (params) => zonghe[params.dataIndex],},},};series[len - 1] = lenItem;this.$beInMotionEcharts("idStackedColumnChart", "stackedColumnChart", {title: {text: "堆叠柱形图",},xAxis: [{data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],},],legend: {// 设置show为false,即隐藏所有图例show: true,data: ["示例1", "示例2", "示例3"],},series,// 鼠标悬浮工具提示tooltip: {trigger: "axis",axisPointer: {type: "shadow",},formatter(params) {let res = `<div style="font-weight: 700;">${params[0].name}</div>`,sum = 0;for (let i = 0; i < params.length; i++) {let item = params[i],items = series[item.seriesIndex];if (items.name !== null) {sum += item.data;res += `<div><span class="tooltip" style="background: ${item.color};"></span>${item.seriesName}: ${item.data}</div>`;}}res += `<div><span class="tooltip" style="background: transparent;"></span>总计: ${sum}</div>`;return res;},},});},},
};
style
.tooltip {display: inline-block;margin-right: 5px;border-radius: 50%;width: 10px;height: 10px;
}
解析
网上好多文章用的都是echarts中的
barGap: '-100%'
让两个系列的柱子重叠,从而实现顶部显示总数。
但是这种方法只适合X轴只有一个堆叠柱状图。
现在的需求是一个X轴项,有两个或两个以上堆叠柱状图,这种方法并不适用该需求。
这种方法的思路是单独再造一个柱状图,然后移动该柱状图的位置,从而实现重叠显示。
既然这种思路不适用该需求,转变思路,直接改变柱状图的lable显示即可。
方式一(不推荐的方式)
方式二
概述
label提供了formatter方法来对显示的文字进行处理,只需要在堆叠柱状图的
最后
一个数据项上添加以下代码即可。
这样基本完事,后面的第二个柱状图也是这样。只要放到zonghe这个数组中的数据跟你显示的数据能一一对应上,数据就不会错,鼠标悬浮上显示的tooltip数据也不会错。
顶部显示
label: {normal: {show: true,position: "top",// formatter(params) {// return zonghe[params.dataIndex];// },formatter: (params) => zonghe[params.dataIndex],},
}
鼠标悬浮工具提示
tooltip: {trigger: "axis",axisPointer: {type: "shadow",},formatter(params) {let res = `<div style="font-weight: 700;">${params[0].name}</div>`,sum = 0;for (let i = 0; i < params.length; i++) {let item = params[i],items = series[item.seriesIndex];if (items.name !== null) {sum += item.data;res += `<div><span class="tooltip" style="background: ${item.color};"></span>${item.seriesName}: ${item.data}</div>`;}}res += `<div><span class="tooltip" style="background: transparent;"></span>总计: ${sum}</div>`;return res;},
}
相关文章:

web前端之vue和echarts的堆叠柱状图顶部显示总数、鼠标悬浮工具提示、设置图例的显示与隐藏、label、legend、tooltip
MENU 效果图htmlJavaScripstyle解析 效果图 html <template><div><div><div id"idStackedColumnChart" style"width: 100%; height: 680px"></div></div></div> </template>JavaScrip export default {…...

Excel表中合并两个Sheet的方法?
按AltF11,调出Visual Basic 界面。 在左侧窗口中,右键选择“插入”—“模块”: 将如下代码粘贴进去,点击运行按钮,完成数据表合并。 Sub MergeAllSheetsInThisWorkbook() On Error Resume Next Application.ScreenU…...
1个10进制数转为2进制和转为8进制, 各位上数字后2进制的值与8进制的值相同的值有 1 8 9 64 问第23个值是多少?
1个10进制数转为2进制和转为8进制, 各位上数字后2进制的值与8进制的值相同的值有 1 8 9 64 问第23个值是多少? #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include<cmath&g…...
27、Nuxt.js项目整合ElementUI组件库
参考element-ui官网安装组件库 项目中新建插件引入element-ui plugins\element-ui.js import Vue from vue; import ElementUI from element-ui;Vue.use(ElementUI);nuxt.config.js plugins: ["/plugins/element-ui.js"],build: {// 将位于 node_modules 目录下的…...

设计问卷调查问题的9大技巧!技巧1:明确目标与问题
我们在设计问卷调查时要考虑很多因素,其中问卷问题是需要关注的重要因素之一。有效的问题能够帮助我们获取到有用的信息,让问卷结论更准确。怎么设计问卷调查的问题呢?本文就为大家提供几个设计问题时的神仙技巧! Tip1࿱…...

java代码调用twitter-api用例实战
一、申请twitter开发者账号 首先先申请twitter开发者免费的API,要填写申请的内容,放心大胆地写,申请完,会提供免费的API接口。 以下是我申请到的三个免费API 申请完开始进行测试调用。 读官方文档账户认证那块:https…...
UniWebView的更新日志【### 5.3.0 (28 Jan, 2023)】
UniWebView的更新日志 # Release Note ### 5.3.0 (28 Jan, 2023) #### Add * Support for customization of Kotlin and Android Browser package versions. This can help to resolve the conflict with other plugins which use another version of these packages. ###…...

【VScode】安装配置、插件及远程SSH连接
一、VSCode安装 二、配置安装插件 三、配置远程连接SSH 四、MinGW 一、VSCode安装 VS官网 Visual Studio Code - Code Editing. Redefined下载安装包: 二、配置安装插件 安装中文插件 配置字体为20 配置文件–>首选项->设置->Font Size为20 设置 VSC…...
IOS Frida 常用脚本
调用堆栈 console.log("bt:" + Thread.backtrace(this.context,Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join(\n\t)); Hook 调用,修改返回值 // Get a reference to the openURL selectorvar openURL = ObjC.classes.UIApplication["- openURL:&qu…...
vuex actions异步请求 跟module模块化
actions vuex里面的异步操作,接受参数context ,参数有commt,getters,state 列如:调用 mutations 方法实现修改state 数据 (只能通过mutations 修改 state 数据) state:()>{count: 0, }mutations: {addCount(state)…...

医学图像分割:U_Net 论文阅读
“U-Net: Convolutional Networks for Biomedical Image Segmentation” 是一篇由Olaf Ronneberger, Philipp Fischer, 和 Thomas Brox发表的论文,于2015年在MICCAI的医学图像计算和计算机辅助干预会议上提出。这篇论文介绍了一种新型的卷积神经网络架构——U-Net&a…...

从0到0.01入门 Webpack| 008.精选 Webpack面试题
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...

免费不限字数的文本转语音AI配音工具,无需安装
上周给大家分享了AI绘本故事制作,很多小伙伴让我,推荐一款免费的AI配音,音色质量富有情感语调,而且手机上就能用的文本转语音工具。 OK,那么今天就给小伙伴们推荐一款我经常自用的AI配音工具,无需安装下载&…...
开源大模型框架llama.cpp使用C++ api开发入门
llama.cpp是一个C编写的轻量级开源类AIGC大模型框架,可以支持在消费级普通设备上本地部署运行大模型,以及作为依赖库集成的到应用程序中提供类GPT的功能。 以下基于llama.cpp的源码利用C api来开发实例demo演示加载本地模型文件并提供GPT文本生成。 项…...

Qt 网络通信
获取本机网络信息 (1)在 .pro 文件中加入 QT network(2) #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QLabel> #include <QLineEdit> #include <QPu…...

基恩士软件的基本操作(五,日志记录与使用)
目录 基恩士是如何保存日志的? 如何使用日志功能 查看DM10的值1秒加1的记录日志 设定id与储存位置 软元件设定( 日志ID有10个(0~10),每一个ID最多添加512个软元件) 设定触发 执行日志的梯形图程序 触…...

MySQL 8 手动安装后无法启动的问题解决
开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,(…...

难怪被人卷了不知道啊!这么学自动化测试,一个星期就搞定了!!!
目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够明白自动化测试并很好落地实施的团队还不是非常多,我们接来下用通俗的方式来介绍自动化测试…… 首先我们从招聘岗位需求说起。看近期的职…...
每日OJ题_算法_双指针⑦力扣15. 三数之和
目录 力扣15. 三数之和 解析代码 力扣15. 三数之和 难度 中等 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三…...

【计算机网络学习之路】日志和守护进程
文章目录 前言一. 日志介绍二. 简单日志1. 左字符串2. 右字符串 三. 守护进程1. ps -axj命令2. 会话扩展命令 3. 创建守护进程 结束语 前言 本系列文章是计算机网络学习的笔记,欢迎大佬们阅读,纠错,分享相关知识。希望可以与你共同进步。 本…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...