Echarts 实现两两柱图重叠(背景和实际值柱图)

Echarts实现两两重叠柱状图_echarts 重叠柱状图_Web_阿凯的博客-CSDN博客

引用启发的博客

先来效果:

option = {
  backgroundColor: '#03213D',
  animation: true, // 控制动画是否开启
  animationDuration: 1000, // 动画的时长, 它是以毫秒为单位
  animationDuration: function (arg) {
    return 1000 * arg;
  },
  animationEasing: 'bounceOut', //linear 缓动动画
  animationThreshold: 8, // 动画元素的阈值
  tooltip: {
    trigger: 'axis',
    backgroundColor: 'rgba(0,0,0,.6)',
    borderColor: 'rgba(147, 235, 248, 0)',
    textStyle: {
      color: '#FFF'
    }
  },
  grid: {
    top: '10%',
    bottom: '5%',
    left: '3%',
    right: '8%',
    containLabel: true
  },
  xAxis: [
    {
      data: ['焦二', '焦三', '焦四'],
      axisLine: {
        show: true, //隐藏X轴轴线
        lineStyle: {
          color: '#163a5f',
          width: 2
        }
      },
      axisTick: {
        show: false, //隐藏X轴刻度
        alignWithLabel: true
      },
      axisLabel: {
        show: true,
        textStyle: {
          color: 'rgb(255,255,255,.7)',
          fontSize: 16,
          fontWeight: 'bold'
        },
        interval: 0,
        formatter: function (value) {
          var ret = ''; //拼接加\n返回的类目项
          var maxLength = 4; //每项显示文字个数
          var valLength = value.length; //X轴类目项的文字个数
          var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
          if (rowN > 1) {
            //如果类目项的文字大于5,
            for (var i = 0; i < rowN; i++) {
              var temp = ''; //每次截取的字符串
              var start = i * maxLength; //开始截取的位置
              var end = start + maxLength; //结束截取的位置
              //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
              temp = value.substring(start, end) + '\n';
              ret += temp; //凭借最终的字符串
            }
            return ret;
          } else {
            return value;
          }
        }
      }
    },
    {
      data: ['焦二', '焦三', '焦四'],
      show:false,
      axisLine: {
        show: false, //隐藏X轴轴线
        lineStyle: {
          color: '#163a5f',
          width: 2
        }
      },
      axisTick: {
        show: false, //隐藏X轴刻度
        alignWithLabel: true
      },
      axisLabel: {
        show: true,
        textStyle: {
          color: 'rgb(255,255,255,.7)',
          fontSize: 16,
          fontWeight: 'bold'
        },
        interval: 0,
        formatter: function (value) {
          var ret = ''; //拼接加\n返回的类目项
          var maxLength = 4; //每项显示文字个数
          var valLength = value.length; //X轴类目项的文字个数
          var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
          if (rowN > 1) {
            //如果类目项的文字大于5,
            for (var i = 0; i < rowN; i++) {
              var temp = ''; //每次截取的字符串
              var start = i * maxLength; //开始截取的位置
              var end = start + maxLength; //结束截取的位置
              //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
              temp = value.substring(start, end) + '\n';
              ret += temp; //凭借最终的字符串
            }
            return ret;
          } else {
            return value;
          }
        }
      }
    }
  ],
  yAxis: {
    type: 'value',
    // name: "单位:ml",
    nameTextStyle: {
      color: '#BDD8FB',
      fontSize: 12
    },

    splitLine: {
      show: true,
      lineStyle: {
        color: 'rgba(255, 255, 255, 0.15)',
        type: 'dashed' // dotted 虚线
      }
    },
    axisTick: {
      show: false
    },
    axisLine: {
      show: true, //隐藏X轴轴线
      lineStyle: {
        color: '#163a5f',
        width: 1
      }
    },
    axisLabel: {
      show: true,
      textStyle: {
        color: 'rgba(207,227,252,0.6)',
        fontSize: 12
      }
    }
  },
  series: [
    {
      name: '值 - 全焦产量',
      type: 'bar',
      barWidth: 30,
      itemStyle: {
        color: function (params) {
          return {
            type: 'linear',
            x: 0, //右
            y: 0, //下
            x2: 0, //左
            y2: 1, //上
            colorStops: [
              {
                offset: 0.01,
                color: '#ffffff' // 0% 处的颜色
              },
              {
                offset: 0.1,
                color: '#13D5FC'
              },
              {
                offset: 1,
                color: 'transparent' // 100% 处的颜色
              }
            ]
          };
          // }
        },
        barBorderRadius: [8, 8, 0, 0]
      },
      label: {
        show: true,
        position: 'top',
        distance: 0,
        color: 'rgb(0,255,255)',
        formatter: '{c}'
      },
      data: [35, 33, 65]
    },
    {
      name: '背景 - 全焦产量',
      type: 'bar',
      barWidth: '30px',
      xAxisIndex: 1,
      data: [100, 100, 100], //背景阴影长度
      itemStyle: {
        normal: {
          color: 'rgba(255,255,255,0.06)',
          barBorderRadius: [0, 0, 0, 0],
          borderColor: 'rgb(33,156,251)'
        }
      },
      tooltip: {
        show: false
      },
      zlevel: 9
    },
    {
      name: '值 - 冶金焦产量',
      type: 'bar',
      barWidth: 30,
      barGap: '100%',
      itemStyle: {
        color: function (params) {
          return {
            type: 'linear',
            x: 0, //右
            y: 0, //下
            x2: 0, //左
            y2: 1, //上
            colorStops: [
              {
                offset: 0.01,
                color: '#ffffff' // 0% 处的颜色
              },
              {
                offset: 0.1,
                color: '#13D5FC'
              },
              {
                offset: 1,
                color: 'transparent' // 100% 处的颜色
              }
            ]
          };
          // }
        },
        barBorderRadius: [8, 8, 0, 0]
      },
      label: {
        show: true,
        position: 'top',
        distance: 0,
        color: 'rgb(0,255,255)',
        formatter: '{c}'
      },
      data: [25, 33, 65]
    },
    {
      name: '背景 - 冶金焦产量',
      type: 'bar',
      xAxisIndex: 1,
      barWidth: '30px',
      barGap: '100%',
      data: [100, 100, 100], //背景阴影长度
      itemStyle: {
        normal: {
          color: 'rgba(255,255,255,0.06)',
          barBorderRadius: [0, 0, 0, 0],
          borderColor: 'rgb(33,156,251)'
        }
      },
      tooltip: {
        show: false
      },
      zlevel: 9
    }
  ]
};

源码直接粘贴到Echarts官网即可运行

重要的是多个X轴,一个Y轴,使背景的都使用同一个X轴,实际值柱图使用另外一个X轴,然后每个使用X轴的同一系列的最后一个series属性中,将barGap属性调整一致即可。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Proteus仿真】【Arduino单片机】DS1302时钟

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用PCF8574、LCD1602液晶、DS1302等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示时间日期。 二、软件设计 /* 作者&#xff1a;…

linux课程第一课------命令的简单的介绍

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

23111703[含文档+PPT+源码等]计算机毕业设计javaweb商城项目全套电商购物系统

文章目录 **软件开发环境及开发工具&#xff1a;****项目功能介绍&#xff1a;****论文截图&#xff1a;****实现****代码片段&#xff1a;** 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;776871563 软件开发环境及开发工具&#xff1a; 前端使用…

深入了解百度爬虫工作原理

在当今数字化时代&#xff0c;互联网已经成为人们获取信息的主要渠道之一。而搜索引擎作为互联网上最重要的工具之一&#xff0c;扮演着连接用户与海量信息的桥梁角色。然而&#xff0c;我们是否曾经好奇过当我们在搜索引擎中输入关键词并点击搜索按钮后&#xff0c;究竟是如何…

Springboot更新用户头像

人们通常(为徒省事)把一个包含了修改后userName的完整userInfo对象传给后端&#xff0c;做完整更新。但仔细想想&#xff0c;这种做法感觉有点二&#xff0c;而且浪费带宽。 于是patch诞生&#xff0c;只传一个userName到指定资源去&#xff0c;表示该请求是一个局部更新&#…

element el-date-picker报错Prop being mutated:“placement“快速解决方式

报错信息 Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “placement” 报错版本 element-ui 2.15.6 和 2.15…

鸿蒙4.0开发笔记之DevEco Studio启动时不直接打开原项目

1、想要在DevEco Studio启动时不直接打开关闭前的那个项目&#xff0c;可以在设置中进行。 有两个位置可以进入“设置”&#xff0c;一个是左上角的File>Settings&#xff0c;二是右上方的设置图标。 2、进入Settings界面以后&#xff0c;选择Appearance&Behavior下面…

Verilog基础:仿真时x信号的产生和x信号对于各运算符的特性

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 信号爆x也许是所有IC人的噩梦&#xff0c;满屏的红色波形常让人头疼不已&#xff0c;但x信号的产生原因却常常只有几种&#xff0c;只要遵循一定的代码规范&#…

windows安装wsl2以及ubuntu

查看自己系统的版本 必须运行 Windows 10 版本 2004 及更高版本&#xff08;内部版本 19041 及更高版本&#xff09;或 Windows 11 才能使用以下命令 在设置&#xff0c;系统里面就能看到 开启windows功能 直接winQ搜 开启hyber-V、使用于Linux的Windows子系统、虚拟机平…

无损音频播放软件 Colibri mac中文版特点介绍

Colibri for mac是一款轻量级的音频播放器软件。它具有简洁的界面设计和快速启动速度&#xff0c;能够提供流畅的音频播放体验。Colibri支持多种常见的音频格式&#xff0c;包括MP3、FLAC、ALAC、AAC等。它还提供了一些实用的功能&#xff0c;如音频均衡器、音频增益控制、播放…

场景交互与场景漫游-osgGA库(5)

osgGA库 osgGA库是OSG的一个附加的工具库&#xff0c;它为用户提供各种事件处理及操作处理。通过osgGA库读者可以像控制Windows窗口一样来处理各种事件 osgGA的事件处理器主要由两大部分组成&#xff0c;即事件适配器和动作适配器。osgGA:GUIEventHandler类主要提供了窗口系统的…

Leetcode -2

Leetcode Leetcode -234.回文链表Leetcode -160.相交链表 Leetcode -234.回文链表 题目&#xff1a;给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输…

【计算思维】少儿编程蓝桥杯青少组计算思维题考试真题及解析D

STEMA考试-计算思维-U8级(样题) 21.下面哪个图形与其它图形不同&#xff1f;&#xff08; &#xff09; A. B. C. D. 22.下列哪个选项是由下图旋转得到的&#xff1f;&#xff08; &#xff09; A. B. C. D. 23.下面哪个图形是用4个 拼成的&#xff1f;&#xff08; &#xf…

【Kingbase FlySync】界面化管控平台:2.配置数据库同步之KES>KES

【Kingbase FlySync】界面化管控平台:3.配置数据库同步之KES->KES 部署KES数据库到KES数据库同步服务1.登录KFS管理平台2.开始配置数据节点信息(1)配置node1数据节点(2)配置node2数据节点 3.KFS拓扑图配置4.开始部署5.启动同步程序并查验是否运行正常 测试同步1.从node1数据…

Android——gradle插件配置方式——dependencies和plugins

引言 我们知道Android studio 需要gradle插件进行构建和编译&#xff0c;随着AGP的升级&#xff0c;引入gradle插件也发生了变化。旧版本通过build.gradle文件中dependencies代码块引入&#xff0c;新版本通过plugins代码块引入 一、旧版本引入方式dependencies 二、新版本引入…

电子学会C/C++编程等级考试2021年06月(一级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:数的输入和输出 输入一个整数和双精度浮点数,先将浮点数保留2位小数输出,然后输出整数。 时间限制:1000 内存限制:65536输入 一行两个数,分别为整数N(不超过整型范围),双精度浮点数F,以一个空格分开。输出 一行两个数,分…

Day33力扣打卡

打卡记录 最大和查询&#xff08;排序单调栈上二分&#xff09; 链接 大佬的题解 class Solution:def maximumSumQueries(self, nums1: List[int], nums2: List[int], queries: List[List[int]]) -> List[int]:ans [-1] * len(queries)a sorted(((a, b) for a, b in zi…

Cascade-MVSNet论文笔记

Cascade-MVSNet论文笔记 摘要1 立体匹配&#xff08;Stereo Matching&#xff09;2 多视图立体视觉&#xff08;Multi-View Stereo&#xff09;3 立体视觉和立体视觉的高分辨率输出4 代价体表达方式&#xff08;Cost volume Formulation&#xff09;4.1 多视图立体视觉的3D代价…

K8S1.23.5部署(此前1.17版本步骤囊括)及问题记录

应版本需求&#xff0c;升级容器版本为1.23.5 kubernetes组件 一个kubernetes集群主要由控制节点&#xff08;master&#xff09;与工作节点&#xff08;node&#xff09;组成&#xff0c;每个节点上需要安装不同的组件。 master控制节点&#xff1a;负责整个集群的管理。 …

Mac安装win程序另一个方案

前言 今天跟大家分享的是mac装win程序的另一个思路&#xff0c;不需要大动干戈的装双系统、虚拟机。最后分享感受&#xff0c;先说过程吧。 一、思路介绍 其实&#xff0c;就是利用CrossOver&#xff0c;这个软件的介绍大家可以自行了解。不过不得不说这玩意还是国外的人思路新…