VUE echarts 柱状图、折线图 双Y轴 显示

news2025/6/20 8:24:36

在这里插入图片描述
weekData: [“1周”,“2周”,“3周”,“4周”,“5周”,“6周”,“7周”,“8周”,“9周”,“10周”], //柱状图横轴
jdslData: [150, 220, 430, 360, 450, 680, 100, 450, 680, 200], // 折线图的数据
cyslData: [100, 200, 400, 300, 500, 500, 500, 450, 480, 400], // 柱状图1的数据
plgtData: [200, 200, 430, 360, 500, 500, 500, 450, 580, 500], // 柱状图2的数据
jdgtData: [300, 200, 100, 400, 100, 200, 100, 350, 380, 300], // 柱状图3的数据
cygtData: [150, 220, 430, 360, 450, 680, 100, 450, 680, 200], // 折线图的数据

  //千分位格式
  stateFormat(num,n=2,symbol) {
       // 保证为number类型
       num = Number(num)
       if(typeof num!=='number')throw new TypeError('num参数应该是一个number类型');
       if(n<0)throw new Error('参数n不应该小于0');
       var hasDot=parseInt(num)!=num;//这里检测num是否为小数,true表示小数
       var m=(n!=undefined&&n!=null)?n:1;
       num=m==0?num.toFixed(m)+'.':hasDot?(n?num.toFixed(n):num):num.toFixed(m);
       symbol=symbol||',';
       num=num.toString().replace(/(\d)(?=(\d{3})+\.)/g,function(match, p1,p2) {
           return p1 + symbol;
       });
       if(n==0||(!hasDot&&!n)){//如果n为0或者传入的num是整数并且没有指定整数的保留位数,则去掉前面操作中的小数位
           num=num.substring(0,num.indexOf('.'));
       }
       return num;
   },
            
  // xAxisData:x轴的值, lineData1:已接单数量, lineData2:差异数量, barData1:工厂产能工天, barData2:已接单工天 ,lineData3 差异工天
  drawLine(xAxisData, lineData1, lineData2, barData1, barData2 , barData3)
  {
      var that = this;
      let eChart = echarts.init(document.getElementById("echart")); // 基于准备好的dom,初始化echarts实例
      that.eChart = eChart;
      eChart.setOption({
          // 绘制图表
          title: {text: ""},
          //悬浮标
          tooltip: {
              trigger: 'axis',
              axisPointer: {
                  type: 'shadow'
              },
              // formatter: '{a}: {c}', //官方
              formatter(params) {  //自定义
                  var relVal = params[0].name;
                  for (var i = 0, l = params.length; i < l; i++) {
                      //relVal += '<br/>' + params[i].marker + params[i].seriesName + ' : ' + Number(params[i].value).toFixed(0)
                      relVal += '<br/>' + params[i].marker + params[i].seriesName + ' : ' + that.stateFormat(params[i].value,0)
                  }
                  return relVal;
              },

          },
          grid: {
              left: '3%',
              right: '3%',
              bottom: '3%',
              containLabel: true,
          },
          legend: {//图例名
              show: true,
              data: ['已接单工天','差异工天', '已接单数量', '差异数量'],
              x: 'center',        //图例在中间center 左边left 右边right
              textStyle: {        //图例字体的颜色
                  color: "#000" ,  //图例文字
              }
          },

          xAxis: [
              // x轴 10周
              {
                  type: "category",
                  axisTick: {
                      show: false, // 坐标轴刻度
                  },
                  axisLine: {
                      show: true, // 坐标轴轴线
                      lineStyle: {
                          //color: "#eeeeee",
                          color: '#cccccc'
                      }
                  },
                  axisLabel: {
                      // 坐标轴刻度标签的相关设置
                      inside: false,
                      textStyle: {
                          color: "#999",
                          fontWeight: "normal",
                          fontSize: "12",
                      },
                  },
                  splitLine: {show: false}, // 去除网格线
                  axisPointer: {
                      type: 'shadow',
                  },
                  data: xAxisData,
              },
              {
                  type: "category",
                  axisLine: {show: false}, // 是否显示坐标轴轴线
                  axisTick: {show: false}, // 是否显示坐标轴刻度
                  axisLabel: {show: false}, // 是否显示刻度标签 柱状图上的标签
                  splitArea: {show: false}, // 是否显示分隔区域 背景遮罩
                  splitLine: {show: false}, // 是否显示分隔线
              },
          ],
          yAxis: [
              // y轴
              {
                  type: "value",
                  max: value => {
                      const { max, min } = value;
                      const absMax = Math.max(Math.abs(max), Math.abs(min));
                      return Math.floor(absMax * 1.2);
                  } ,
                  min: value => {
                      const { max, min } = value;
                      const absMax = Math.max(Math.abs(max), Math.abs(min));
                      return Math.floor(-absMax * 1.2);
                  },
                  axisTick: {
                      show: false,
                  },
                  axisLine: {
                      show: true,
                      lineStyle: {
                          //color: "#eeeeee",
                          color: '#cccccc'
                      },
                  },
                  axisLabel: {
                      textStyle: {
                          color: "#bac0c0",
                          fontWeight: "normal",
                          fontSize: "12",
                      },
                      formatter: "{value}",
                  },
                  splitLine: {
                      show: true, // 去除网格线
                      lineStyle: {
                          color: '#f8f8f8',
                      }
                  },
              },{
                  type: "value",
                  max: value => {
                      const { max, min } = value;
                      const absMax = Math.max(Math.abs(max), Math.abs(min));
                      return Math.floor(absMax * 1.2);
                  } ,
                  min: value => {
                      const { max, min } = value;
                      const absMax = Math.max(Math.abs(max), Math.abs(min));
                      return Math.floor(-absMax * 1.2);
                  },
                  axisLabel: {
                      textStyle: {
                          color: "#bac0c0",
                          fontWeight: "normal",
                          fontSize: "12",
                      },
                      formatter: "{value}",
                  },
                  splitLine: {
                      show: true, // 去除网格线
                      lineStyle: {
                          color: '#f8f8f8',
                      }
                  },
              }

          ],
          series: [
              // { // 柱状图1 工厂产能工天
              //     type: "bar",
              //     name: '工厂产能工天',
              //     itemStyle: {
              //         show: true,
              //         //color: "#7ca6f8",  // 柱状图的颜色
              //         color: "#5470C6",  // 柱状图的颜色
              //         borderWidth: 0,
              //         borderType: "solid",
              //         emphasis: {
              //             shadowBlur: 15,
              //             shadowColor: "rgba(105,123, 214, 0.7)",
              //         },
              //     },
              //     zlevel: 1,
              //     barWidth: 40,
              //     data: barData1,
              // },
              { // 柱状图2  已接单工天
                  type: "bar",
                  name: '已接单工天',
                  yAxisIndex: 1 ,
                  itemStyle: {
                      show: true,
                      // color: "#6ebbb8",
                      color: "#91CC75",
                      borderWidth: 0,
                      borderType: "solid",
                      emphasis: {
                          shadowBlur: 15,
                          shadowColor: "rgba(105,123, 214, 0.7)",
                      },
                  },
                  label: {
                      show: true,
                      position: 'insideRight',
                      // formatter: '{c}'
                      // formatter(params) {  //自定义
                      //     relVal = that.stateFormat(params.value,0);
                      //     return relVal;
                      // },
                  },
                  zlevel: 2,
                  barWidth: 40,
                  data: barData2,
              },
              { // 柱状图1 工厂差异工天
                  type: "bar",
                  name: '差异工天',
                  yAxisIndex: 1 ,
                  itemStyle: {
                      show: true,
                      //color: "#7ca6f8",  // 柱状图的颜色
                      color: "#5470C6",  // 柱状图的颜色
                      borderWidth: 0,
                      borderType: "solid",
                      emphasis: {
                          shadowBlur: 15,
                          shadowColor: "rgba(105,123, 214, 0.7)",
                      },
                  },
                  label: {
                      show: true,
                      position: 'insideRight',
                      // formatter: '{c}'
                      // formatter(params) {  //自定义
                      //     relVal = that.stateFormat(params.value,0);
                      //     return relVal;
                      // },
                  },
                  zlevel: 1,
                  barWidth: 40,
                  data: barData3,
              },
              { // 折线1  已接单数量
                  zlevel: 3,
                  type: "line",
                  name: '已接单数量',
                  color: ["#8d83f7"],  // 拐点颜色
                  symbolSize: 8,   // 拐点的大小
                  symbol: "circle",  // 拐点样式
                  label: {
                      show: true,
                      position: 'top',
                      // formatter: '{c}'
                      // formatter(params) {  //自定义
                      //     relVal = that.stateFormat(params.value,0);
                      //     return relVal;
                      // },
                  },
                  data: lineData1,
                  itemStyle: {
                      normal: {
                          lineStyle: {
                              color: "#8d83f7", // 折线的颜色
                              type: "solid",    // 折线的类型
                          }
                      }
                  },
                  // tooltip: {
                  //     formatter: '{b}<br/>已接单数量:{c}<br/>',
                  // }
              },
              { // 折线2  差异数量
                  zlevel: 4,
                  type: "line",
                  name: '差异数量',
                  color: ["#ef836f"],  // 拐点颜色
                  symbolSize: 8,       // 拐点的大小
                  symbol: "circle",    // 拐点样式
                  label: {
                      show: true,
                      position: 'top',
                      // formatter: '{c}'
                      // formatter(params) {  //自定义
                      //     relVal = that.stateFormat(params.value,0);
                      //     return relVal;
                      // },
                  },
                  data: lineData2,
                  itemStyle: {
                      normal: {
                          lineStyle: {
                              color: "#ef836f", // 折线的颜色
                              type: "solid" ,   // 折线的类型
                          }
                      }
                  },
                  // tooltip: {
                  //     formatter: '{b}<br/>差异数量:{c}<br/>',
                  // }
              }
          ],
      });
  },

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

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

相关文章

基于VScode 使用plantUML 插件设计状态机

本文主要记录本人初次在VScode上使用PlantUML设计 本文只讲述操作的实际方法&#xff0c;假设java已安装成功 。 1. 在VScode下安装如下插件 2. 验证环境是否正常 新建一个文件夹并在目录下面新建文件test.plantuml 其内容如下所示: startuml hello world skinparam Style …

ubuntu|23 安装Gnome主题

ubuntu23 安装主题 进入网站选择需要的主题 https://www.opendesktop.org/s/Gnome/p/1357889 1 资源下载 经常加载不出来&#xff0c; 这里直接进入github下载源码 下载zip 2 安装主题 根据文档提示&#xff0c; 执行install.sh就能安装 3 切换主题 安装 tweak工具 sudo …

Win10玩游戏老是弹回桌面的解决方法

在Win10电脑中&#xff0c;用户不仅可以办公&#xff0c;也可以畅玩各种各样的游戏。但是&#xff0c;有时候用户在玩游戏的时候&#xff0c;遇到了游戏老是自己弹回桌面的问题&#xff0c;这样是非常影响游戏体验的&#xff0c;却不清楚具体的解决方法。下面小编给大家带来了简…

力扣第235题 二又搜索树的最近公共祖先 c++

题目 235. 二叉搜索树的最近公共祖先 中等 &#xff08;简单&#xff09; 相关标签 树 深度优先搜索 二叉搜索树 二叉树 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&…

抖音短视频SEO是什么?抖音SEO系统源码/SEO系统源码搭建/

一.数据市场 二、AI视频创意 (1)工作台 (2)创造性工程 (3)材料管理 (4)裂变视频 (5)创作灵感 场景:实现单体设计模式&#xff1b; 想法:与创建相关的是construct的陷阱&#xff0c;每次我们都返回相同的实例。 (1)推广词库(2)三维排名查询(3)算术指数四。帐户矩阵操作(1)账户管…

谷歌浏览器 ERR_MANDATORY_PROXY_CONFIGURATION_FAILED 报错的处理方式

今天早上到公司 还是和往常一样 电脑开机 打开谷歌浏览器 搜索资料结果给我报错了 2.原先我的谷歌浏览器配置的搜索引擎为百度 3.电脑上面的火狐 ie浏览器都是可以的排除电脑网络方面的问题(dns也有解析谷歌路径的这个有兴趣的可以研究) 最终还是刷新了电脑的dns ,清除了谷歌…

混淆技术研究笔记(六)如何基于yGuard实现?

确定参考 <adjust> 作为入口后&#xff0c;就需要详细了解这部分代码的逻辑。 需要看yguard源码了&#xff0c;你会如何阅读一个完全不了解的源码&#xff1f; 我通常的策略都是找一个目标&#xff0c;添加代码依赖&#xff0c;写好demo&#xff0c;debug跟踪代码看。如…

大功率回馈式直流电子负载箱的运用

大功率回馈式直流电子负载箱能够模拟各种负载条件&#xff0c;可以在实验室环境中对电源、电池、太阳能电池板等电子设备进行全面的性能测试和模拟负载&#xff0c;具有高功率输出、高精度、高稳定性和高可靠性的特点&#xff0c;能够满足各种应用场景的需求。 电源测试方面大功…

深入了解桶排序:原理、性能分析与 Java 实现

桶排序&#xff08;Bucket Sort&#xff09;是一种排序算法&#xff0c;通常用于将一组数据分割成有限数量的桶&#xff08;或容器&#xff09;&#xff0c;然后对每个桶中的数据进行排序&#xff0c;最后将这些桶按顺序合并以得到排好序的数据集。 桶排序原理 确定桶的数量&am…

eclipse 某个文件不能编辑

今天打开eclipse 突然发现有一个文件不能编辑&#xff0c;左下角发现此文件被修改为只读&#xff0c; 右键此文件-->properties--> Resource -->在Attributes中&#xff0c;取消Read-only选项--> Apply 此时&#xff0c;发现eclipse 右下角 变为Writable。再次编辑…

windows查看登陆的IP

我的电脑右键打开管理 筛选当前日志 4648 可以查看到IP了

象棋小游戏【小游戏】(Java课设)

系统类型 Java实现的小游戏 使用范围 适合作为Java课设&#xff01;&#xff01;&#xff01; 部署环境 jdk1.8Idea或eclipse 运行效果 本系统源码地址&#xff1a;https://download.csdn.net/download/qq_50954361/88388732 更多Java课设系统源码地址&#xff1a;更多J…

Android---java线程优化 偏向锁、轻量级锁和重量级锁

java 中的线程是映射到操作系统原生线程之上的&#xff0c;如果要阻塞或唤醒一个线程就需要操作系统的帮忙&#xff0c;这就需要从用户态转换到核心态。状态转换需要花费很多时间&#xff0c;如下代码所示&#xff1a; private Object lock new Object();private int value;p…

研发必会-异步编程利器之CompletableFuture(含源码 中)

近期热推文章&#xff1a; 1、springBoot对接kafka,批量、并发、异步获取消息,并动态、批量插入库表; 2、SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据; 3、基于Redis的Geo实现附近商铺搜索(含源码) 4、基于Redis实现关注、取关、共同关注及消息推送(含源码) 5…

Avalonia常用小控件Charts

1.项目下载地址&#xff1a;https://gitee.com/confusedkitten/avalonia-demo 2.UI库Semi.Avalonia&#xff0c;项目地址 https://github.com/irihitech/Semi.Avalonia 3.Charts库&#xff0c;LiveChartsCore.SkiaSharpView.Avalonia&#xff0c;Nuget获取只有预览库&#x…

Vue3模块找不到问题解决:找不到模块‘vue ‘。你的意思是将“模块解决方案”选项设置为“节点”,还是添加ali

Vue3 vite 项目引入 vue 报错 Cannot find module ‘vue‘. Did you mean to set the ‘moduleResolution‘ option to ‘node‘, or to add ali 在项目中找到 tsconfig.json 文件 找到配置项里的 "moduleResolution": "bundler", 将其改成 &q…

简述WPF中MVVM的设计思想

近年来&#xff0c;随着WPF在生产、制造、工控等领域应用越来越广泛&#xff0c;对WPF的开发需求也在逐渐增多&#xff0c;有很多人不断的从Web、WinForm开发转向了WPF开发。 WPF开发有很多新的概念及设计思想&#xff0c;如数据驱动、数据绑定、依赖属性、命令、控件模板、数…

win10 配置静态IP脚本

静态IP配置方法&#xff1a; 1、新建一个txt文本&#xff0c;加入以下代码 netsh interface ip set address name"以太网" sourcestatic addr192.168.101.11 mask255.255.255.0 gateway192.168.101.12、将TXT另存为ANSI编码&#xff01;将TXT另存为ANSI编码&#x…

2023年中国舞台烟雾机产量、销量及市场规模分析[图]

舞台烟雾机是一种用于舞台表演和演出的设备&#xff0c;它能够产生各种形式的烟雾效果&#xff0c;以增强舞台表演的视觉效果和氛围。舞台烟雾机通常由气泵、烟雾发生器、控制器和烟雾管道等组成&#xff0c;可以通过控制器调节烟雾的浓度、颜色和流量&#xff0c;以满足不同演…

C++ 位图与布隆过滤器

目录 前言位图场景演示应用场景模拟实现问题例题 布隆过滤器例子理解应用 例题 前言 位图与布隆过滤器是用来在海量数据中判断一个数据在不在的问题的数据结构&#xff0c;这种数据结构在存储空间上大大的优于红黑树、哈希等数据结构 位图 我们为了处理一个数据在海量数据中…