echarts仪表盘特殊样式

在这里插入图片描述


const drawChartOption = function (value, max) {
   const colorConfig = {
      name: '测试',
      colorList: {
         text: '#fff',
         line2: {
            type: 'linear',
            x: 0, // 右
            y: 0, // 下
            x2: 1, // 左
            y2: 0, // 上
            colorStops: [
              // {
              //     offset: 0,
              //     color: 'transparent'
              // },
                {
                  offset: 0.1,
                  color: '#031e35'
               },
               {
                  offset: 0.8,
                  color: '#00c9f2'
               },
               {
                  offset: 1,
                  color: '#c5f3fd'
               }
            ]
         },
         line3: {
            type: 'linear',
            x: 0, //右
            y: 0, //下
            x2: 1, //左
            y2: 0, //上
            colorStops: [
              {
                  offset: 0,
                  color: 'transparent'
              },
               {
                 offset:0.2,
                 color: '#062e42'
               },
               {
                  offset: 0.8,
                  color: '#017a89'
               },
               {
                  offset: 1,
                  color: '#c5f3fd'
               }
            ]
         }
      }
   }

   const ratio = max ? ((value / max) * 100).toFixed(1) : 0;

   const { name, colorList } = colorConfig;

   const option = {
      backgroundColor: '#000',
      tooltip: {
        show: false,
        formatter(params) {
            if (params) {
              const { marker, name } = params;
              // return `${marker}${name}  ${ratio ? ratio + '%' : ''}`;
              return ''
            } else {
              return '';
            }
        },
        triggerOn: 'mousemove',
        borderWidth: 0.5,
        color: '#ffffff'
      },
      grid: {
         left: '2%',
         right: '2%',
         bottom: '2%',
         top: '2%',
         containLabel: false
      },
      series: [
        
         //由外往内第二层线色部分
        {
            type: 'gauge',
            center: ['49.5%', '64%'],
            radius: '72%',
            // min: 0,
            // max: 100,
            zlevel: 6,
            pointer: {
              show: false //是否显示指针
            },
            tooltip: {
              show: true
            },
            progress: {
              show: true,
              roundCap: false,
              width: 20
            },
            title: {
              // 仪表盘标题。
              offsetCenter: [0, '55%'], // title圆环中心的距离
              fontSize: 40,
              fontWeight: 700,
              color:'#fff',
              
            },
            detail: {
              offsetCenter: [0, '-7%'], // title圆环中心的距离
              color: colorList.text,
              textAlign: 'center',
              fontSize: 40,
              fontWeight: 500,
              formatter: () => value
            },
            axisLabel: {
              // 刻度文字 如数字
              show: false,
            
            },
            axisTick: {
              show: false //是否显示刻度
            },
            axisLine: {
              roundCap: false,
              lineStyle: {
                  color: [[1, '#232A33']],
                  width: 40
              }
            },
            splitLine: {
              show: false //是否显示分隔线。
            },
            clockwise: true, //仪表盘刻度是否是顺时针增长。
            splitNumber: 1, //分割线之间的刻度
            // 起始点和最终点距离设置
            data: [
              {
                  name,
                  value: ratio,
                  itemStyle: {
                   
                    color: colorList.line2
                    
                  }
              }
            ]
        },
         //由外往内第三层渐变部分
        {
            type: 'gauge',
            radius: '68%',
            center: ['49.5%', '64%'],
            min: 0,
            max: 100,
            zlevel: 7,
           startAngle: 180,
           endAngle:0,
            pointer: {
              show: false //是否显示指针
            },
            progress: {
              show: true,
              roundCap: false,
              width: 30
            },
            title: {
              show: false
            },
            detail: {
              show: false
            },
            axisLabel: {
              show: false,
              // 刻度文字 如数字
              
            },
            axisTick: {
              show: false //是否显示刻度
            },
            axisLine: {
              show: false
            },
            emphasis: {
              scale: false
            },
            tooltip: {
              show: false
            },
            clockwise: true, //仪表盘刻度是否是顺时针增长。
            splitNumber: 1000, //分割线之间的刻度
            splitLine: {
              show: false
            },
            data: [
              {
                  name,
                  value: ratio,
                  itemStyle: {
                    color: colorList.line3
                  }
              }
            ]
        },
        // 指针
        {
            type: 'gauge',
            center: ['49.5%', '64%'],
            radius: '48%',
            min: 0,
            max: 100,
            zlevel: 8,
            startAngle: 180,
            endAngle: 0,
            detail: {
              show: false
            },
            axisLabel: {
              show: false
            },
            splitLine: {
              show: false
            },
            axisLine: {
              show: false
            },
            axisTick: {
              show: false
            },
            tooltip: {
              show: false
            },
            pointer: {
              show: true,
              length: 200,
              width: 4,
              icon: 'rect',
              offsetCenter: [0, '-50%'],
              itemStyle: {
                  color: '#B7D8FF'
              }
            },
            data: [ratio]
        },
        //虚线
       {
          title:'虚线',
          type: 'gauge',
          center: ['49.5%', '64%'],
          radius: '68%',
          min: 0,
          max: 100,
          splitNumber: 20,
          startAngle: 360,
          endAngle: 0,
          axisLine: {
              show: true,
              lineStyle: {
                  width: 40,
                  color: [
                      [1, 'rgba(0,0,0,0)']
                  ]
                  
              }
          },
          axisLabel: {
              show: false,
              color: '#4d5bd1',
              textStyle: {
                  fontWeight: 'bold',
                  fontSize: 18,
                  color: '#7789AA',
              },
              distance: 25,
              formatter: function (value) {
                  return value % 10 == 0 ? value : '';
              }
          },
          axisTick: {
              show: true,
              splitNumber: 4,
              lineStyle: {
                  color: '#074258',
                  width: 7,
              },
              length: -2
          },
          splitLine: {
              show: false,
          },
          detail: {
              show: false
          },
          pointer: {
              show: false
          }
      },
      {
          title:'园',
          type: 'gauge',
          center: ['49.5%', '64%'],
          radius: '51%',
          min: 0,
          max: 100,
          splitNumber: 20,
          startAngle: 360,
          endAngle: 0,
          axisLine: {
              show: true,
              lineStyle: {
                  width: 40,
                  color: [
                      [1, '#06283c']
                  ]
                  
              }
          },
          axisLabel: {
              show: false,
              
          },
          axisTick: {
              show: false,
              
          },
          splitLine: {
              show: false,
          },
          detail: {
              show: false
          },
          pointer: {
              show: false
          }
      },
      {
          title:'园',
          type: 'gauge',
          center: ['49.5%', '64%'],
          radius: '41%',
          min: 0,
          max: 100,
          splitNumber: 20,
          startAngle: 360,
          endAngle: 0,
          axisLine: {
              show: true,
              lineStyle: {
                  width: 40,
                  color: [
                      [1, '#063a51']
                  ]
                  
              }
          },
          axisLabel: {
              show: false,
              
          },
          axisTick: {
              show: false,
              
          },
          splitLine: {
              show: false,
          },
          detail: {
              show: false
          },
          pointer: {
              show: false
          }
      },
            {
          title:'园',
          type: 'gauge',
          center: ['49.5%', '64%'],
          radius: '31%',
          min: 0,
          max: 100,
          splitNumber: 20,
          startAngle: 360,
          endAngle: 0,
          axisLine: {
              show: true,
             lineStyle: {
                    color: [
                        [
                            1,
                            {
                                type: 'radial',
                                x: 0.5,
                                y: 0.59,
                                r: 0.6,
                                colorStops: [
                                    {
                                        offset: 0,
                                        color: '#032046',
                                    },
                                    {
                                        offset: 0.94,
                                        color: '#086989',
                                    },
                                    {
                                        offset: 0.98,
                                        color: '#0FAFCB',
                                    },
                                    {
                                        offset: 1,
                                        color: 'transparent',
                                    },
                                ],
                            },
                        ],
                    ],
                    width: 400,
                },
              
          },
          axisLabel: {
              show: false,
              
          },
          axisTick: {
              show: false,
              
          },
          splitLine: {
              show: false,
          },
          detail: {
              show: false
          },
          pointer: {
              show: false
          }
      },
      ]
   };

   return option;
};


const options = drawChartOption(50, 100)


option = options

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

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

相关文章

TikTok防关联引流系统:全球多账号运营的终极解决方案

tiktok防关联引流系统介绍,tiktok防关联系统是基于tiktok生态研发的效率工具,帮你快速实现tiktok全球多账号运营,系统配备了性能强劲的安卓,防关联智能终端,可一建创建全球多国手机环境,完美满足各类app软件…

CX3324A是德科技CX3324A器件电流波形分析仪

181/2461/8938产品概述: 器件电流波形分析仪,1 GSa/s,14/16 位,4 通道 主机功能特性 为电流和差分传感器以及无源探头接口适配器提供 4 个模拟通道带宽选件:50 MHz、100 MHz、200 MHz存储器深度选件:4 M…

eclipse操作

1. 屏蔽不用的代码或文件夹 右键需要屏蔽的文件夹或文件,选择properties,选择c/c build ,在Exclude resource from build 前面勾选,然后点击apply应用,就屏蔽了这个文件夹或者文件了,编译时就会忽略。 设置…

浅聊什么是Redis?

需求:MySQL面临大量的查询,即读写操作,因此类比CPU,给数据加缓存,Redis诞生。应用程序从MySQL查询的数据,在Redis设置缓存(记录在内存中,无需IO操作),后再需要…

Linux(CentOS)安装Redis教程_简单快捷

一、安装依赖 因为redis是用C语言开发的,所以在安装之前需要确定是否安装gcc环境(gcc -v),如果没有安转可以执行一下命令进行安装 [rootlocalhost ~]# yum install -y gcc 二、下载安装包 1.在官网先进行下载 官网地址&#x…

Node.js-------初识Node.js与内置模块

能够知道什么是 Node.js能够知道 Node.js 可以做什么能够说出 Node.js 中的 JavaScript 的组成部分能够使用 fs 模块读写操作文件能够使用 path 模块处理路径能够使用 http 模块写一个基本的 web 服务器 一.初识Node.js 1.浏览器中的 JavaScript 的组成部分 2.Node.js 简介 …

从“量子”到分子:探索计算的无限可能 | 综述荐读

在2023年年末,两篇划时代的研究报告在《科学》(Science)杂志上引发了广泛关注。这两篇论文分别来自两个研究小组,它们共同揭示了单氟化钙分子间相互作用的研究成果,成功地在这些分子间创造出了分子量子比特。这一成就不…

理解二分类场景评估中的Recall和Precision

场景解释: 二分类场景会有两种输出。我的样本里有猫的图片和其他的图片。我的输出值是“是猫”和“非猫”。这个场景下,“是猫”是我的正样本(Postive)。“非猫”是我的负样本(Negative)。 Confusion matrix: 横向表示预测的结果。纵向表示真实的结果。…

生命之重-ICU门口的守望人

有人说如果没有经历过在ICU门口守候的人,就无法真正懂得珍惜生命。但实际情况也未必尽然,不过这种经历确实可以教会你懂得珍惜,当然希望大家都不要亲身经历。我希望能够通过讲述一个真实的故事来呈现这一观点,而不是令人难以接受的…

Linux部署Kafka2.8.1

安装Jdk 首先确保你的机器上安装了Jdk,Kafka需要Java运行环境,低版本的Kafka还需要Zookeeper,我此次要安装的Kafka版本为2.8.1,已经内置了一个Zookeeper环境,所以我们可以不部署Zookeeper直接使用。 1、解压Jdk包 t…

idea了解

1、快捷键 1.1、编辑美化相关 1.1.1、双击选中一个单词,三击选中一行代码 1.1.2、ctrlD:快速粘贴复制;光标所在复制 1.1.3、altinsert:构造方法的快速生成;toString方法快速生成;等等 1.1.4、ctrlR:快…

怎样给文件夹中的文件依次编号?选择合适的方法给文件依次编号

在日常生活和工作中,我们经常需要对文件夹中的文件进行编号,以便更好地管理和查找。编号的方式多种多样,可以根据不同的需求和场景来选择。下面,我将详细介绍如何给文件夹中的文件依次编号。 一、了解编号的目的和需求 在给文件编…

基于51单片机的智能门禁系统仿真设计

**单片机设计介绍,基于51单片机的智能门禁系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的智能门禁系统仿真设计概要 一、设计概述 本设计旨在利用51单片机为核心控制器,结合…

为什么品牌宣传需要深度稿件?媒介盒子揭秘

在信息洪流中,品牌想要占据用户心智仅靠传统的广告方式很难达成目标,只有真正有价值的信息才能吸引用户注意力,品牌方可以通过深度稿件来实现。 深度传播稿是一种高质量的、需要花费较长时间和精力来撰写的宣传文章,篇幅较长&…

SpringBoot:自定义线程池配置类

文章目录 一、前言二、案例展示1、初始版本2、代码审核意见和优化建议3、潜在问题和风险4、优化建议5、优化后的代码 三、具体使用 一、前言 有时候我们在项目中做一些长链路的跑批任务时,基于Springboot项目的定时任务,我们可以指定一个自定义的线程配…

LeetCode-热题100:206. 反转链表

题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入: head [1,2,3,4,5] 输出: [5,4,3,2,1] 示例 2: 输入: head [1,2] 输出: [2,1] 示例 3…

如何才能实现基坑自动化监测?

基坑自动化监测是一个系统性的过程,它涉及对基坑整体情况的全面了解和分析,确定监测指标,选择合适的监测传感器并进行安装和调试,配置相应的数据采集、传输和管理软件系统,以及进行系统的调试、定期维护和数据分析。以…

matlab中旋转矩阵函数

文章目录 matlab里的旋转矩阵、四元数、欧拉角四元数根据两向量计算向量之间的旋转矩阵和四元数欧拉角转旋转矩阵旋转矩阵转欧拉角旋转矩阵转四元数参考链接 matlab里的旋转矩阵、四元数、欧拉角 旋转矩阵dcmR四元数quatq[q0,q1,q2,q3]欧拉角angle[row,pitch,yaw] % 旋转矩阵…

2024年04月数据库流行度最新排名

点击查看最新数据库流行度最新排名(每月更新) 2024年04月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多,这个数据库就被认为越受欢迎。这是一个领先指标。原始数…

项目:USB键盘和鼠标的复合设备

我们的复合设备使用一个物理设备就可以完成多个功能。 使用复合设备同时完成USB键盘和鼠标功能,它的主要实现方式有两种, 第一个就是我们将多个设备描述符合并成一个,这个相对比较简单,我们只要根据相应的报告描述符处理数据就可…