Echarts 柱状图重叠展示 总量和部分量

echarts 堆叠柱状图 顶部添加合计 阅读详情
AI摘要

本文介绍了基于 Echarts 实现盘条库存图表展示的代码。通过初始化 Echarts 实例、获取并处理数据、定义图表配置选项,展示了盘条的当前库存、未发订单、总库存,还标注了三条安全库存线。同时实现了图表自适应和点击触发自定义事件功能。

文章目录


前言

基于vue2+Echarts 柱状图重叠展示 总量和部分量


提示:以下是本篇文章正文内容,下面案例可供参考

一、效果展示

二、代码介绍

  1. 首先使用 echarts.init 方法初始化一个 echarts 实例 fullScreen,并传入一个 DOM 元素(通过 this.$refs.WireRod 获取)作为渲染容器。

  2. 通过 await selectDataWireRod() 获取数据,并对数据进行处理,提取出需要的值 ZDD、ZKC、SUM、invRedNum、invOrangeNum、invYellowNum。

  3. 定义了一个 option 对象,包括图表的标题、提示框、图例、坐标轴、系列等配置。

  4. 在 series 中定义了几个不同类型的数据系列,包括"当前库存"、"未发订单"、"总库存",以及三个自定义的安全库存线条系列。

  5. 设置了图表的样式、颜色、柱状图宽度等属性。

  6. 调用 fullScreen.setOption(option) 将配置好的选项应用到图表中。

  7. 监听窗口大小变化事件,实现图表的自适应。

  8. 监听点击事件,触发自定义事件。

  9. 重要点:属性  stack: "x",和  barGap: "-100%",  柱状图宽度一定要固定。

三、完整代码

盘条代码如下  单独封装基本都差不多(示例):

<template>

  <div ref="WireRod" style="width: 100%; height: 400px"></div>

</template>

   

    <script>

import echarts from "echarts";

import { selectDataWireRod } from "@/api/MMZ/MMZ410";

export default {

  data() {

    return {};

  },

  mounted() {

    this.Echarts();

  },

  methods: {

    async Echarts() {

      const fullScreen = echarts.init(this.$refs.WireRod);

      let data = await selectDataWireRod();

      let list = [];

      let ZDD = "";

      let ZKC = "";

      let SUM = "";

      let invRedNum = ""; // 第一组警戒线值

      let invOrangeNum = ""; // 第二组警戒线值

      let invYellowNum = ""; // 第三组警戒线值

      if (data.data.code == 200) {

        list = data.data.data.Total;

      }

      ZDD = list[0].ZDD;

      ZKC = list[0].ZKC;

      SUM = list[0].SUM;

      invRedNum = list[0].invRedNum;

      invOrangeNum = list[0].invOrangeNum;

      invYellowNum = list[0].invYellowNum;

      var option = {

        title: {

          text: "盘条",

          textStyle: {

            fontWeight: "normal",

            fontSize: 21,

          },

          left: "15%",

        },

        tooltip: {

          trigger: "axis", //触发类型。[ default: 'item' ] :数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用;'axis'坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用

          axisPointer: {

            lineStyle: {

              color: "#57617B",

            },

          },

        },

        legend: {

          data: ["当前库存", "未发订单"],

        },

        grid: {

          left: "3%", //grid 组件离容器左侧的距离。

          right: "4%", //grid 组件离容器右侧的距离。

          bottom: "3%", //grid 组件离容器下侧的距离。

          containLabel: true, //grid 区域是否包含坐标轴的刻度标签[ default: false ]

        },

        xAxis: {

          data: ["盘条"],

        },

        yAxis: {

          type: "value",

          name: "(单位:吨)", //坐标轴名称。

          splitLine: { show: false },

        },

        series: [

          {

            name: "当前库存",

            data: [ZKC],

            type: "bar",

            stack: "x",

            yAxisIndex: 0,

            color: "#409EFF",

            barWidth: "50px",

            itemStyle: {

              normal: {

                color: function (params) {

                  if (

                    Number(params.value) < Number(invRedNum)

                  ) {

                    return "#F56C6C";

                  } else if (

                    Number(params.value) <

                    Number(invOrangeNum)

                  ) {

                    return "#E6A23C";

                  } else if (

                    Number(params.value) <

                    Number(invYellowNum)

                  ) {

                    return "yellow";

                  } else {

                    return "#409EFF";

                  }

                },

              },

            },

          },

          {

            name: "未发订单",

            data: [ZDD],

            type: "bar",

            stack: "x",

            yAxisIndex: 0,

            color: "#ccc",

            barWidth: "50px",

          },

          {

            name: "总库存",

            type: "bar",

            data: [SUM],

            smooth: false,

            // stack: "x",

            yAxisIndex: 0,

            barWidth: "50px",

            barGap: "-100%",

            z: -1,

            color: "#fff",

            itemStyle: {

              normal: {

                borderColor: "#ccc", // 虚线颜色

                borderType: "dashed", // 虚线样式

              },

            },

          },

          {

            type: "custom",

            name: "五天安全库存",

            renderItem: function renderItem(param, api) {

              var point = api.coord([api.value(0), api.value(1)]);

              return {

                type: "line",

                transition: ["shape"],

                shape: {

                  x1: point[0] - 25,

                  x2: point[0] + 25,

                  y1: point[1],

                  y2: point[1],

                },

                style: api.style({

                  stroke: api.visual("color"),

                  lineWidth: 3,

                }),

              };

            },

            itemStyle: {

              borderType: "soild",

              normal: {

                color: "#F56C6C",

              },

            },

            z: 999,

            data: [invRedNum],

          },

          {

            type: "custom",

            name: "七天安全库存",

            renderItem: function renderItem(param, api) {

              var point = api.coord([api.value(0), api.value(1)]);

              return {

                type: "line",

                transition: ["shape"],

                shape: {

                  x1: point[0] - 25,

                  x2: point[0] + 25,

                  y1: point[1],

                  y2: point[1],

                },

                style: api.style({

                  stroke: api.visual("color"),

                  lineWidth: 3,

                }),

              };

            },

            itemStyle: {

              borderType: "soild",

              normal: {

                color: "#E6A23C",

              },

            },

            z: 999,

            data: [invOrangeNum],

          },

          {

            type: "custom",

            name: "十天安全库存",

            renderItem: function renderItem(param, api) {

              var point = api.coord([api.value(0), api.value(1)]);

              return {

                type: "line",

                transition: ["shape"],

                shape: {

                  x1: point[0] - 25,

                  x2: point[0] + 25,

                  y1: point[1],

                  y2: point[1],

                },

                style: api.style({

                  stroke: api.visual("color"),

                  lineWidth: 3,

                }),

              };

            },

            itemStyle: {

              borderType: "soild",

              normal: {

                color: "yellow",

              },

            },

            z: 999,

            data: [invYellowNum],

          },

        ],

      };

      fullScreen.setOption(option);

      window.addEventListener("resize", function () {

        fullScreen.resize();

      });

      fullScreen.on("click", (params) => {

        this.$emit("custom-event", true);

      });

    },

  },

};

</script>

   

    <style scoped>

</style>


总结

总体来说,这段代码实现了一个基于 Echarts 的图表展示功能,展示了盘条的当前库存、未发订单、总库存,并标注了三个不同颜色的安全库存线,当前库存、未发订单基于总库存之中。

如何使用Echarts完成柱状图重叠功能 业务需求中需要显示各个科目下的总公司预算帽和分公司预算帽的使用情况对比,所以在柱状图显示时就需要将总公司的柱子和分公司的柱子重叠在一起显示,以此来比较分公司使用了总公司多少的预算,业务很明确,但是如何做到柱子的重叠有点不明确。 山重水复 首先我去查询了kendoui的官网看看有没有柱状图重叠显示的属性,搜索一番后无果,kendoui只有柱状图叠加的使用样例,并没有柱状图重叠,这种情况下只能去寻... 阅读详情

相关推荐

Echarts实现多组柱状图重叠效果图例可用

Echarts实现多组柱状图重叠效果图例可用描述效果源代码 描述 Echarts 实现柱子重叠效果, 并且保证图例正常使用. 由于同一Grid内, 有多组数据时, 取消图例会导致柱子居中, 所以, 采用一组柱子一组一Grid. 效果 源代码 option = { tooltip: { trigger: 'axis', formatter: (params, ticket, callback) => { let title = (params

娃儿回家 6412

Echarts柱形图堆叠

应用场景:一些柱形图在数据量比较多的时候,横向排列受到挤压,导致柱形图,变的非常细,影响整体的效果。所以应该将柱形图堆叠起来,这样就会好很多。 先上效果图: 关键字:series-stack //数据堆叠,同个类目轴上系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加。 var option = { series: [ { name: "钢铁侠", type: "bar",//柱状图 ...

Sunshine_Jian的博客 3万+

Echarts柱状图,实现不同系列,柱体之间的部分重叠效果

使用echarts绘制柱状图,如何实现下图这种,不同系列所代表的柱体之间的部分重叠的效果呢? 如图,x轴上每个data,对应着4种数据(3柱形、1折线图),其中3个柱体之间存在着部分重叠的视觉效果。 barGap属性 关键在于配置项series下的barGap属性。看一看echarts官方提供的配置项手册中的解释: 不同系列的柱间距离,为百分比(如 ‘30%’,表示柱子宽度的 30%)。 如果想要两个系列的柱子重叠,可以设置 barGap 为 ‘-100%’。这在用柱子做背景的时候有用。 建议’-45

weixin_46557501的博客 5206

ECharts 实现重叠柱状图

1 使用详解 (1)series.z 说明: 折线图组件的所有图形的 z 值。控制图形的前后顺序。 z 值小的图形会被 z 值大的图形覆盖。z 相比 zlevel 优先级更低,而且不会创建新的 Canvas。 (2)series.barGap 说明: 不同系列的柱间距离,为百分比(如 '30%',表示柱子宽度的 30%)。 如果想要两个系列的柱子重叠,可以设置 barGap 为 '-100%'。这在用柱子做背景的时候有用。 在同一坐标系上,此属性会被多个 'bar' 系列共享。此属性应设置

旭东怪的博客 2万+

echarts 柱状图背景重叠组合,而非并列

本文主要介绍柱状图重叠,实现条纹背景图和背景色的组合图。 一、关键性代码 // base64位背景图 此处可以改为相对路径 var barImage = './img/chart_bg.png'; // 在线上转base64位工具 https://www.sojson.com/image2base64.html var barImage = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAAH6ji2bAAAAGXRFWHRTb2.

拥抱AI Design 2279

【yolov8】与yolov5的区别及改进详解

yolov8-----有点厉害的目标检测框架.

qq_44878985的博客 3万+

echarts柱状图多柱重叠和堆叠处理

echarts柱状图多柱重叠和堆叠处理 堆叠:stack: 'product' series: [ { name:'蒸发量', type:'bar', stack:'堆叠',//堆叠柱状图在此设置成统一名称即可 da...

weixin_30873847的博客 7129

Android 13 Hotseat定制化修改——001 hotseat布局方向

一.背景由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher...

Java_fenxiang的博客 1102

Echarts Bar 柱状图标签label重叠问题处理

Echarts Bar 柱状图标签label重叠问题处理

weixin_69337669的博客 7668

华硕ROG幻16笔记本电脑模式切换管理工具完美替代华硕奥创中心管理工具

参考文档1这个工具可以完美替代华硕奥创中心工具,可以定制化不同模式下的CPU、GPU、风扇转速、电池计划等。是由华硕开发人员开发的一个纯绿色的系统管理工具。直接展示启动后的工具界面效果图:这个工具也可以一键式停止正在运行的华硕ASUS服务,减少不必要的资源消耗。

追梦&天空的博客 1万+

大唐豪侠服务器列表文件格式错误,关于大唐豪侠一键端的一些问题心得

有人问了大唐豪侠架设方面的问题,我简单研究了一下,做了个整理,现放出来大家一起研究讨论,我是把服务端的解压到了D盘里面了。第一个问题:架设成功后,运行客户端提示获取服务器列表失败,这个原因是因为压缩的一键端是整理过的,我们需要把服务器列表等解压出来,详见截图首先到这个目录里面找到package.zip,找到这个以后这里要注意,解压路径里面一定不要有package,这个解压成功后就有了服务列表等...

weixin_42530536的博客 1528

ECharts 柱状图多柱 情况下堆叠和重叠

1.echarts代码原文http://echarts.baidu.com/examples/editor.html?c=mix-line-bar在此不进行复制 2.堆叠stack:'product', series: [ { name:'蒸发量', type:'bar', stack:'堆叠',//...

4618

C#上位机与VisionPro通用框架:视觉标定、通信联动与现场排坑实战

工业自动化设备的上位机开发,往往面临流程控制、视觉检测、通信交互等环节的重复搭建。C#作为主流工业语言,配合VisionPro视觉软件,可通过通用框架设计将状态机调度、相机采集、标定算法与串口/扫码枪通信等底层能力模块化,从而大幅降低项目交付成本。其核心原理在于:将设备工艺差异封装至配置层,视觉流程通过CogToolBlock工具链与VPP模板复用,九点标定建立像素与机械坐标系的映射关系。该方案已在螺丝锁付、点胶定位等多类产线落地,尤其适用于批量交付、换型频繁的视觉设备场景。这套从实践中沉淀的框架思路,以及

weixin_31102231的博客 338

echarts重叠柱状图相关

前言 效果图 主要问题点 1、柱状图重叠stack 2、数据过大显示处理log(对数坐标) 3、对数(极)坐标0数据处理 4、0数据项显示为灰色柱状条 5、窗口变化自适应 6、侧边导航展开收起对echarts图的影响 柱状图重叠stack // 1.切换x、y轴 yAxis: { type: 'category', boundaryGap: true, show: true, axisLine: { lineStyle: { opacity: 0, }

weixin_43909743的博客 4375

FreeRTOS深入教程(任务创建的深入和任务调度机制分析)

本篇文章将带大家深入学习任务的创建和分析任务调度的机制。本篇文章深入的讲解了任务创建的内部实现和任务调度的源代码分析和实现,学习这篇文章有助于更深入的学习FreeRTOS的源码。

m0_49476241的博客 6391

Playwright实战:打造绕过全维度前端反爬的无头浏览器爬虫(2026实战版)

Playwright绕过前端反爬的核心是模拟真实:真实的设备指纹、真实的行为轨迹、真实的网络请求;2025年前端反爬的核心检测维度是设备指纹+行为轨迹+网络请求,三者缺一不可;实战中需重点关注WebGL/Canvas指纹模拟、行为随机性、请求头完整性,这是绕过反爬的关键;性能优化需以“不触发反爬”为前提,优先选择浏览器复用、资源拦截,而非无限制并发。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2094

Echarts实现多柱状图重叠重叠效果

echarts柱状图重叠问题

weixin_39891473的博客 9278

VAY 是 SAP 自动科目确定(OBYC-GBB)中的科目修改码,专用于带科目分配对象的销售订单发货场景,核心是触发 “Dr 成本要素科目(如销售费用 / 特定成本对象) Cr 库存商品” 的分录,

摘要:VAY是SAP中用于带科目分配对象(如成本中心、WBS)的销售订单发货的科目修改码,与标准VAX场景不同,它生成"借成本要素科目/贷库存商品"的分录。配置路径为OBYC-GBB-VAY,需确保借方科目为成本要素。典型业务场景包括免费样品、项目专用发货等。常见问题包括VAY未触发或科目记账错误,需检查销售订单科目分配、移动类型设置及OBYC配置。特殊场景建议单独配置科目以便费用分析。

金牌架构师 1253

echarts 实现柱状图重叠而不是相互增加

1、引入echart 所需要的js和css,这不再引入 总量的数据是包含分量且大于等于分量 先上效果图: 当我们查看总量时,显示的是将分量的也包含里面,这样就不是叠加的数量了 2、直接上代码 (可复制代码直接运行,前提是引入了相关的css和js) var myChart = echarts.init(document.getElementById("chart1"), 'sh...

weixin_30706507的博客 1432

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ECharts 实现3D重叠椭圆柱状图

1 实现代码 <body> <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="width: 600px;height:400px;"></div> <script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(docume

旭东怪的博客 2100

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ECharts实现两根柱子重叠在一起的柱状图

使用ECharts实现两根柱子重叠在一起的柱状图表

weixin_46422035的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Echarts实现两两重叠柱状图

需求是实现两个柱状图重叠在一起,试过barGap: '-100%'发现都重叠在一起了,只在有两个柱状图时有效,如果是4个实现两两重叠就无法使用。

前端菜鸡的博客 6085

echarts 折线图和柱状图叠加

1,echarts画折线图,重叠折线图。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>第一个 ECharts 实例</title> <!-- 引入 echarts.js --> <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"&g

Handsome2013的博客 3542

使用echarts简单实现双柱状图重叠效果

如何使用echarts简单实现双柱状图重叠效果 代码实现 在series中配置如下代码 // 设置柱状的圆角 itemStyle: { barBorderRadius: 10 }, // 允许展示背景图 showBackground: true, // 设置背景图颜色和圆角 backgroundStyle: { color: 'rgba(255, 255, 255, 0.2)', barBorderRadius: 10 } 柱状图横向展示配置 // X轴设置type为value,y轴设置为c

hbjiankely的博客 6795

解决echarts柱状图x轴文字太多挤压重叠问题

在使用echarts柱状图时会遇到数据项数量不固定且x轴文字数量不固定文字过长等,导致x轴重叠展示的问题,以下提供了几个解决方案,可根据需求来选择。

weixin_43788587的博客 8123
上一篇: vue base64 文件、图片解密
下一篇: Echarts 折线图默认展示数据 样式修改调整
小孙爱出bug
博客等级 码龄5年 73粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值