echarts环形图

news2024/9/21 21:28:05


let dataValue=[
        {
          value: 30,
          name: '桥梁',
          percent: 0.25,
          color: 'rgba(248,95,94,1)',
          radius: ['75%', '80%'],
          center: ['22%', '50%'],
        },
        {
          value: 15,
          name: '隧道',
          percent: 0.25,
          color: 'rgba(243,185,71,1)',
          radius: ['65%', '70%'],
          center: ['22%', '50%'],
        },
        {
          value: 18,
          name: '路基',
          percent: 0.25,
          color: 'rgba(243,185,71,1)',
          radius: ['55%', '60%'],
          center: ['22%', '50%'],
        },
        {
          value: 12,
          name: '深路堑边坡',
          percent: 0.25,
          color: 'rgba(3,151,255,1)',
          radius: ['45%', '50%'],
          center: ['22%', '50%'],
        },
        {
          value: 10,
          name: '既有线',
          percent: 0.25,
          color: 'rgba(3,249,245,1)',
          radius: ['35%', '40%'],
          center: ['22%', '50%'],
        },
      ]
      let a = dataValue.map((t) => {
        t.value = parseInt(t.value);
        return t;
      });
      const sum = a.reduce((per, cur) => per + cur.value, 0);
      const gap = (1 * sum) / 100;
      const pieData1 = [];
      const gapData = {
        name: "",
        value: gap,
        itemStyle: {
          color: "transparent",
        },
      };
      let total = 0;
      dataValue.forEach((item) => {
        total += parseInt(item.value);
      });
       for (let i = 0; i < dataValue.length; i++) {
        // 第一圈数据
        // pieData1.push({
        //   ...this.dataValue[i],
        // });
        pieData1.push({
          name: dataValue[i].name,
          value: dataValue[i].value,
          itemStyle: {
            color: dataValue[i].color,
          },
        });
      }
option = {
   backgroundColor: "#031a40",
  tooltip: {
          confine: true,
          textStyle: {
            fontSize: 13, // 字体大小
          },
        },
        legend: {
          show: true,
          //   orient: "vertical",
          bottom: "10%",
          icon: "circle",
          width: "75%",
          //   top: "middle",
          itemWidth: 12,
          itemHeight: 12,
          itemGap: 18,
          data: dataValue.map((item) => item.name),
          textStyle: {
            color: "#fff",
            fontSize: 13,
            letterSpacing: 10,
            rich: {
              a: {
                fontSize: 14,
                width: "auto",
                marginLeft: 10,
                padding: [0, 0, 0, 5],
                // height: 30,
              },
              b: {
                fontSize: 14,
                width: 40,
                padding: [0, 0, 0, 15],
                color: "#fff",
              },
            },
          },
          formatter: (param) => {
            var str = "";
            console.log();
            dataValue.forEach((item, index) => {
              if (item.name == param) {
                str = "{a|" + item.name + "}" + "{b|" + item.value + "}";
                return;
              }
            });
            return str;
          },
        },
        // grid: {
        //   show: false,
        //   left: "0",
        //   right: "0",
        //   bottom: "1%",
        //   top: "0%",
        //   containLabel: true,
        // },
        // title: {
        //   //圆环中间内容
        //   text: "184",
        //   subtext: "类型总数",
        //   left: "21%",
        //   top: "43%",
        //   textStyle: {
        //     color: "#fff",
        //     fontSize: 20,
        //     align: "center",
        //   },
        //   subtextStyle: {
        //     fontSize: 15,
        //     fontWeight: "500",
        //     align: "center",
        //     color: "#fff",
        //     // marginTop: "-10px",
        //   },
        // },
        color: ["rgba(0,150,255,1)", "rgba(0,204,255,2)"],
        series: [
          {
            name: "",
            avoidLabelOverlap: true, //防止标签重叠
            type: "pie",
            radius: ["60%", "40%"], //大小
            center: ["50%", "36%"], //位置
            data: pieData1,
            label: {
              show: false,
              formatter: function (params) {},
              textStyle: {
                fontSize: "18",
                fontWeight: "bold",
                color: "#fff",
              },
            },
            emphasis: {
              show: false,
            },
          },
          {
            type: "gauge",
            zlevel: 1,
            // z: 198,
            splitNumber: 70,
            radius: "39%",
            center: ["50%", "36%"],
            startAngle: 90,
            endAngle: -269.9999,
            axisLine: {
              show: false,
            },
            axisTick: {
              show: false,
            },
            axisLabel: {
              show: false,
            },
            splitLine: {
              show: true,
              length: 6,
              lineStyle: {
                width: 3,
                color: "rgba(108,173,202,1)",
              },
            },
            data: [
              {
                value: 198,
                name: "测已断面",
                title: {
                  // 配置“家居总数”的样式
                  show: true,
                  fontSize: 18,
                  fontWeight: 700,
                  // fontFamily: fontFamily.fontFamily65W,
                  color: "rgba(128,255,255,1)",
                  offsetCenter: [0, "20%"],
                },
              },
            ],
            detail: {
              // 调节数字位置
              offsetCenter: [-2, -17],
              fontSize: 25,
              fontWeight: 700,
              // fontFamily: fontFamily.fontFamily95W,
              color: "rgba(128,255,255,1)",
            },
            pointer: {
              show: false,
            },
            // detail: {
            //   show: 0,
            // },
          },
        ],
 
};

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

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

相关文章

类似antdesign悬浮按钮上浮小动画【已验证,正常运行】

以下是基于vue2的完整代码&#xff0c;习惯用vue写了&#xff0c;如果是其他框架复制div和css就行 部分代码来自我搭建的GPT4o/Claude <template><div class"progress-container"><div class"circlenav-container"><div class"…

深度学习——引言

一、机器学习的关键因素 1.1 数据 每个数据集由一 个个样本组成&#xff0c;大多情况下&#xff0c;数据遵循独立同分布。通常每个样本由一组特征属性组成。 好的数据集 { 数据样本多 正确的数据 ( g a r b a g e i n , g a r b a g e o u t ) 好的数据集 \begin{cases} 数据…

通俗易懂理解Hive四种排序

前言 Hive的四种排序包括Sort By、Order By、Distribute By和Cluster By。有关这四种排序的区别&#xff0c;在大数据面试中可能会经常被问到&#xff0c;在我们很多人的实际应用中可能最常用的就是全局排序order by&#xff0c;因此对于其他几个排序理解并不准确&#xff0c;…

ardupilot开发 --- 炸酱面 篇

我的头可不是面头捏的 奥维互动地图ovital航点文件转Mission planner航点文件 奥维互动地图ovital航点文件转Mission planner航点文件 gcj02 转 wgs84 奥维互动地图&#xff1a;https://www.ovital.com 航线1.ovjsn 转换工具&#xff1a;https://github.com/huangyangl/geo_c…

Linux之grep命令

在文本文件中过滤&#xff0c;包含指定字符串的行 – grep [选项] 字符串 文本文件...• 常用命令选项 – -v&#xff0c;取反匹配 – -i&#xff0c;忽略大小写 ]# grep root /etc/passwd #包含root的行 ]# grep -v root /etc/passwd #不包含root ]# grep ROOT…

操作系统的功能及应用

操作系统介绍 操作系统&#xff08;Operating System, OS&#xff09;是计算机系统中不可或缺的核心软件&#xff0c;它负责管理和控制计算机硬件与软件资源&#xff0c;提供用户与计算机之间的交互界面。本文将详细探讨操作系统的功能、分类及其在现代社会中的应用。 操作系统…

通过redis-operator 来部署 Redis Cluster 集群

安装 Redis Operator 首先&#xff0c;需要安装 redis-operator。可以通过 Helm 或直接应用 YAML 文件来安装。 使用 Helm 安装&#xff1a; helm repo add ot-helm https://ot-container-kit.github.io/helm-charts/ helm install redis-operator ot-helm/redis-operator --…

2024 年的 Web3 游戏:演变、趋势和市场动态

Web3 游戏行业在经历了多年的快速发展和变革之后&#xff0c;正在2024年迎来全新的阶段。这个行业从最初的边玩边赚&#xff08;Play-to-Earn, P2E&#xff09;模式出发&#xff0c;如今正在向更为平衡的“边玩边赚”模式转型。这种转型不仅解决了早期 P2E 模式下存在的可持续性…

自动驾驶真正踏出迈向“用户”的第一步:IROS24新SOTA提出个性化的实例迁移模仿学习

导读&#xff1a; 本文针对自动驾驶规划任务&#xff0c;提出了一种基于实例的迁移模仿学习方法&#xff0c;通过预先训练的微调框架从专家域迁移专业知识&#xff0c;以解决用户域数据稀缺问题。实验结果显示&#xff0c;该方法能有效捕捉用户驾驶风格并实现具有竞争力的规划性…

select、poll、epoll的原理

目录 1.IO多路复用 2.select原理 3.poll原理 4.epoll原理 5.select、poll、epoll总结 6.epoll原理详解 6.1内核收包的过程 6.2进程调度时的阻塞 6.3再来看一下内核收网络数据的过程 6.4select的原理 6.5epoll的设计原理 6.6补充 6.7总结 1.IO多路复用 IO多路复用…

数据时代的领航者:首席数据官(CDO)如何影响城市治理?

随着2023年9月的到来&#xff0c;多个中国城市包括长沙和北京相继宣布引入首席数据官&#xff08;CDO&#xff09;机制&#xff0c;这标志着国家数据管理体系进入一个新纪元。 首席数据官的设立不仅是对传统数据管理方式的重大革新&#xff0c;也是增强数据战略意识和推动数据…

托勒密世界地图:现代地形图绘制的标杆诞生于公元2世纪

关注我们 - 数字罗塞塔计划 - 今天要为大家分享一幅公元150年左右的世界地图——托勒密世界地图&#xff0c;它是由古埃及的数学家、天文学家、地理学家及占星家劳狄乌斯托勒密绘制的。托勒密著有《天文学大成》、《地理学》和《占星四书》等著作&#xff0c;其中《地理学》一书…

从校园到产业园:数字媒体人才如何无缝对接产业需求?

在当今数字化时代&#xff0c;数字媒体产业蓬勃发展&#xff0c;对专业人才的需求日益旺盛。然而&#xff0c;如何实现从校园到产业园的无缝对接&#xff0c;成为关键问题。 为了实现无缝对接&#xff0c;一方面&#xff0c;学校应加强与产业的合作。邀请行业专家走进校园授课、…

免费分享一套SpringBoot+Vue驾校(预约)管理系统【论文+源码+SQL脚本】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue驾校(预约)管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue驾校(预约)管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 传统办法管理信息首先需要花费的时间比较多&…

OpenCV与Matplotlib:灰度图像

目录 读取灰度图像 代码解释 1. 导入库 2. 读取彩色图像 3. 转换为灰度图像 4. 将 BGR 图像转换为 RGB 格式 5. 创建子图并显示图像 总结&#xff1a; 整体代码 效果展示 衍生操作 1. 边缘检测 代码说明 整体代码 效果展示 2. 图像二值化 代码说明 整体代码 效…

kali——nmap的使用

目录 前言 普通nmap扫描 扫描单个目标地址 扫描多个目标地址 扫描范围目标地址 扫描目标网段 扫描众多目标地址 排除扫描 扫描指定端口 路由追踪 进阶扫描 综合扫描&#xff08;-A&#xff09; 目标网段在线主机&#xff08;-sP&#xff09; 目标主机指纹扫描&am…

Android TextView设置跑马灯失效

1.关于问题 TextView失效在网上有详细的解决方案&#xff0c;大部分时候都能够很好的解决问题 下面给出网上的解决方案&#xff1a; <TextViewandroid:layout_width"100dp"android:layout_height"22dp"tools:text"水浇地放松放松开发的开始放假…

深入RAG优化:BGE词嵌入全解析与Landmark Embedding新突破

前面已经写过一篇关于Embedding选型的文章,《如何高效选择RAG的中文Embedding模型?揭秘最佳实践与关键标准!》,主要介绍通过开源网站的下载量和测评效果选择Embedding模型。 一、Embedding选型建议与结果 选型建议: 1、大部分模型的序列长度是 512 tokens。8192 可尝试 …

每日最新AIGC进展(59):谷歌提出关键帧插值算法、谷歌研究院提出用实时游戏画面生成算法、中国科学院大学提出复杂场景图像生成算法

Diffusion Models专栏文章汇总&#xff1a;入门与实战 Generative Inbetweening: Adapting Image-to-Video Models for Keyframe Interpolation 本研究提出了一种新颖的关键帧插值方法&#xff0c;旨在生成符合自然运动轨迹的连续视频片段。我们适应了已经训练好的图像到视频扩…

每日OJ_牛客_Emacs计算器(逆波兰表达式)

目录 牛客_Emacs计算器&#xff08;逆波兰表达式&#xff09; 解析代码 牛客_Emacs计算器&#xff08;逆波兰表达式&#xff09; Emacs计算器__牛客网 解析代码 逆波兰表达式(后缀表达式)求值&#xff0c;需要借助栈&#xff0c;思路&#xff1a; 循环输入&#xff0c;获取…