echarts柱状图——堆叠、多柱堆叠,并在顶部展示总和

news2024/11/13 8:56:34
  • 实现的效果
    在这里插入图片描述

  • 要求
    1、堆叠数据
    2、可以有多个柱子堆叠
    3、要展示每个堆叠柱子的总和

  • options配置

const xData = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"];
const morningIncome = [1, 2, 3, 4, 5, 6, 7];
const morningPay = [7, 6, 5, 4, 3, 2, 1];
const afternoonIncome = [9, 8, 7, 6, 5, 4, 3];
const afternoonPay = [1, 3, 5, 7, 9, 10, 12];

const options = {
  title: {
    text: "每日开支💰",
  },
  tooltip: {
    trigger: "axis",
    formatter: (params: any) => {
      const allData = params.map((item: any) => item.data);
      let dataStr = `<p style="font-weight:bold;">${params[0].name}</p>`;
      params.forEach((item: any, index: number) => {
        if (index === 0) {
          dataStr += `上午:<span style="color:#000000;">${allData[0] + allData[1]}</span>`;
        }
        dataStr += `<div>
          <div style="margin: 0 8px;">
            <span style="display:inline-block;margin-right:5px;width:10px;height:10px;border-radius:50%;background-color:${item.color};"></span>
            <span>${item.seriesName}</span>
            <span style="color:#000000;">${item.data}</span>
          </div>
        </div>`;
        if (index === 1) {
          dataStr += `<br/>下午:<span style="color:#000000;">${allData[2] + allData[3]}</span>`;
        }
      });
      return dataStr;
    },
  },
  grid: {
    left: "1%",
    right: "1%",
    top: "15%",
    bottom: "1%",
    containLabel: true,
  },
  legend: {},
  xAxis: {
    type: "category",
    data: xData,
  },
  yAxis: {
    type: "value",
  },
  series: [
    {
      name: "收入",
      type: "bar",
      stack: "stack1", // 重点!!stack值相同的会队叠在一起,后面数在前面的上面
      data: morningIncome,
    },
    {
      name: "支出",
      type: "bar",
      stack: "stack1",
      data: morningPay,
      label: {
        show: true,
        position: "top",
        // 巧妙利用lable,计算并展示总值
        formatter: (params: any) =>
          morningIncome[params.dataIndex] + morningPay[params.dataIndex],
      },
    },
    {
      name: "收入",
      type: "bar",
      stack: "stack2",
      data: afternoonIncome,
    },
    {
      name: "支出",
      type: "bar",
      stack: "stack2",
      data: afternoonPay,
      label: {
        show: true,
        position: "top",
        formatter: (params: any) =>
          afternoonIncome[params.dataIndex] + afternoonPay[params.dataIndex],
      },
    },
  ],
}

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

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

相关文章

chrome/edge浏览器插件开发入门与加载使用

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、插件与普通前端项目二、开发插件——manifest.json三、插件使用edge浏览器中使用/加载插件chrome浏览器中使用/加载插件 总结 前言 chrome插件的出现&#xff0c;初衷可能是为了方便用户更好地控制浏览器&#xff0c…

数据结构与算法-二分搜索树

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、二分搜…

[ONVIF系列 - 01] 简介 - 设备发现 - 相关工具

1.背景知识 这个事项对我而言是个新知&#xff0c;我从&#xff1a;https://www.cnblogs.com/liwen01/p/17337916.html 跳转到了&#xff1a;ONVIF协议网络摄像机&#xff08;IPC&#xff09;客户端程序开发&#xff08;1&#xff09;&#xff1a;专栏开篇_onvif 许振坪-CSDN…

数字人直播系统搭建能力评测!3招教你快速摸清源码厂商的真实实力?

随着数字人直播的应用场景不断拓展和应用频率的持续升高&#xff0c;其所蕴含着的市场前景和收益潜力逐渐显现&#xff0c;连带着数字人直播系统搭建的热度也迎来了新的高潮。在此背景下&#xff0c;作为非科班和研发资源有限的创业者们主要的入局途径&#xff0c;各大数字人源…

Vatee万腾平台:智能管理领域的稳健前行者

在数字经济飞速发展的今天&#xff0c;企业管理模式正经历着前所未有的变革。智能化管理&#xff0c;作为这场变革的核心驱动力&#xff0c;正逐步渗透到企业的每一个角落。而在这场智能化浪潮中&#xff0c;Vatee万腾平台以其稳健的步伐和前瞻的视野&#xff0c;成为了智能管理…

【LLM大模型】一个小时内快速部署大模型

这个教程有以下几部分构成&#xff1a; 硬件配置概念介绍实操测试结果 1.硬件配置 本文使用的方法配置要求低&#xff0c;没有gpu也可以正常使用(就是有点慢)&#xff0c;不管是windows 还是linux&#xff0c;都可以无障碍使用大模型&#xff0c;有脚就行&#xff0c;废话少…

开放式耳机哪个牌子好?五款热门机型对比pk大揭秘!

作为一名耳机测评师&#xff0c;很多人想要知道如何才能选择一款合适自己的开放式耳机&#xff0c;其实我也非常的犯难&#xff0c;因为问的人实在是太多了&#xff0c;而且每个人的情况都不一样&#xff0c;所以不能说我指定的机型就一定适合你&#xff0c;所以这篇文章就是来…

【python】高数计算题难度大?python带你轻松拿下

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

ansys fluent流道分析得到的质量流率为负数

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

从技术角度看视频美颜SDK:实现美颜功能的关键算法

本篇文章&#xff0c;笔者将从技术角度&#xff0c;深入探讨视频美颜SDK实现美颜功能的关键算法。 1.人脸检测与特征点定位 人脸检测主要采用的是卷积神经网络等深度学习算法&#xff0c;这些算法能够在不同光照、姿态和表情下准确识别出人脸。 常见的算法包括Dlib库中的68点…

开发环境搭建——Redis的安装配置

1、msi安装 双击msi安装程序&#xff0c;打开安装向导&#xff0c;点击next 接收终端用户协议&#xff0c;点击next 选择安装路径&#xff0c;并勾选将安装路径添加到系统的PATH环境变量 设置Redis服务端口&#xff0c;默认6379&#xff0c;点击next 设置最大内存限制&#xf…

Golang基础常识性知识面试中常见的六大陷阱及应对技巧

一、nil slice & empty slice 1、nil切片与空切片底层 nil切片&#xff1a;var nilSlice [] string nil slice的长度len和容量cap都是0 nil slicenil nil slice的pointer是nil 空切片&#xff1a;emptySlice0 : make([]int,0) empty slice的长度是0&#xff0c;容量是由…

算法初学者学二分查找

力扣704&#xff0c;二分查找 题目是这样的 二分查找的思路就是&#xff1a; 先确定左右两个边界&#xff0c;左边界是从左往右&#xff0c;右边界是从右往左&#xff0c;所以&#xff0c;左边界是找的比target大的第一个值&#xff0c;右边界最后停的点是比target小的第一个…

谢希仁计算机网络第八版期末复习简答(1)

绪论 计算机网络的概念以及常见的网络类型? 计算机网络&#xff0c;是指地理位置分散的、具有独立功能的多台计算机及其外部设备&#xff0c;通过各种通信线路互联起来&#xff0c;在网络操作系统、网络管理软件及网络通信协议的管理和协调下&#xff0c;实现资源共享和信息…

2024年的AI人工智能风口是Python?一篇文章告诉你为什么!

Python是一种面向对象的、解释型的、通用的、开源的脚本编程语言&#xff0c;它之所以非常流行&#xff0c;我认为主要有三点原因&#xff1a; 1.Python 简单易用&#xff0c;学习成本低&#xff0c;看起来非常干净&#xff1b; 2.Python 标准库和第三库众多&#xff0c;功能…

短剧系统源码分享,快速搭建部署上线教程

一、短剧系统是什么&#xff1f; 短剧制作平台&#xff0c;作为一站式综合解决方案&#xff0c;集剧本创作、角色设计、场景搭建、视频编辑、便捷发布及深度数据分析能力于一身。该平台精准定位于助力企业利用短剧形式强化品牌传播力并驱动商业价值增长&#xff0c;无论企业是…

物理学中三个令人兴奋的想法:稳态作用原理、洛伦兹变换和度量张量

​ 图片来源&#xff1a; https 文章目录 ​一、说明二、最小行动原则三、洛伦兹变换四、Minkowski 公制五、度量张量&#xff1a;曲面的几何形状六、三维欧几里得距离。 ​一、说明 虽然物理学引起了公众的好奇心&#xff0c;但许多人发现数学令人生畏。然而&#xff0c;物理…

C#知识|文件与目录操作:目录的操作

哈喽,你好啊,我是雷工! 前边学习了文件的删除、复制、移动,接下来学习目录的操作。 以下为学习笔记。 01 效果演示 1.1、显示指定目录下的所有文件 在左侧的文本框中显示出F:\F004-C#目录下的所有文件, 演示效果: 1.2、显示指定目录下的所有子文件 在左侧的文本框中显…