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. 创建守护进程 结束语 前言 本系列文章是计算机网络学习的笔记,欢迎大佬们阅读,纠错,分享相关知识。希望可以与你共同进步。 本…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑 在电子商务领域,转化率与网站性能是决定商业成败的核心指标。今天,我们将深入解析不同类型电商平台的转化率基准,探讨页面加载速度对用户行为的…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...
SQLSERVER-DB操作记录
在SQL Server中,将查询结果放入一张新表可以通过几种方法实现。 方法1:使用SELECT INTO语句 SELECT INTO 语句可以直接将查询结果作为一个新表创建出来。这个新表的结构(包括列名和数据类型)将与查询结果匹配。 SELECT * INTO 新…...
AWSLambda之设置时区
目标 希望Lambda运行的时区是东八区。 解决 只需要设置lambda的环境变量TZ为东八区时区即可,即Asia/Shanghai。 参考 使用 Lambda 环境变量...
