Echarts升级7:环状图+标题设置+legend属性

news2025/5/11 10:41:49

 效果

注意的点:

  • title样式
  • 颜色设置
  • legend颜色设置
  • legend   textStyle 样式设置;formatter样式设置,文字拆分

 代码:

<template>
  <div style="width: 100%; height: 100%;">
    <div id="siteStatusStatisticChart" style="width: 100%; height: 100%;"></div>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        allItem: [{
            name: '在线',
            value: 1424,
          },
          {
            name: '离线',
            value: 314,
          },
          {
            name: '维护',
            value: 513,
          },
        ],
      }
    },
    mounted() {
      this.initChart()
    },
    methods: {
      // getSelectAreaData(obj) {
      //     this.getRealDatas(obj)
      //   },
      //初始化echart
      initChart() {
        let chartDom = document.getElementById("siteStatusStatisticChart");
        this.myChart = this.echarts.init(chartDom);
        let sum = this.allItem.reduce((cur, pre) => {
          return cur + pre.value;
        }, 0);
        let dataline = [];
        let legendData = [];
        var color = [
          '#00FFFF',
          '#006CED',
          '#FFE000',
        ];
        for (var i = 0; i < this.allItem.length; i++) {
          let name = this.allItem[i].name + '/' + this.allItem[i].value;
          legendData.push(name);
          dataline.push({
            value: this.allItem[i].value,
            name: name,
            itemStyle: {
              borderWidth: 0,
              borderRadius: 5,
              shadowBlur: 10,
              borderColor: color[i],
              shadowColor: color[i],
            },
          }, {
            value: sum / 100, // 控制每个环形之间的间隙
            name: '',
            itemStyle: {
              label: {
                show: false,
              },
              labelLine: {
                show: false,
              },
              color: 'rgba(0, 0, 0, 0)',
              borderColor: 'rgba(0, 0, 0, 0)',
              borderWidth: 0,
            },
          });
        }
        let option = {
          title: {
            text: `{title|${sum}}\n{subtitle|站点总数}`,
            x: '17%',
            y: 'center',
            textStyle: {
              rich: {
                title: {
                  color: '#00FFFF',
                  fontSize: 31,
                  fontWeight: 'normal',
                  fontWeight: 'bold',
                  align: 'center',
                },
                subtitle: {
                  fontSize: 14,
                  color: '#00FFFF',
                  fontFamily: 'HarmonyOS Sans SC',
                  fontWeight: '400',
                  align: 'center',
                },
              }
            }
          },
          // title: [{
          //     text: sum,
          //     x: '18%',
          //     top: '38%',
          //     textStyle: {
          //      color: '#00FFFF',
          //      fontSize: 31,
          //      fontWeight: 'normal',
          //      fontWeight: 'bold',
          //     },
          //   },
          //   {
          //     text: '站点总数',
          //     x: '19%',
          //     top: '53%',
          //     textStyle: {
          //       fontSize: 14,
          //       color: '#00FFFF',
          //       fontFamily: 'HarmonyOS Sans SC',
          //       fontWeight: '400',
          //     },
          //   },
          // ],
          color: color,
          tooltip: {
            show: false,
          },
          legend: {
            icon: 'rect',
            itemWidth: 5,
            itemHeight: 5,
            itemStyle: {
              borderWidth: 3
            },
            orient: 'vertical',
            data: legendData,
            right: '12%',
            top: 'center',
            align: 'left',
            textStyle: {
              rich: {
                numStyle0: {
                  padding: [3, 0, 0, 8],
                  fontSize:30,
                  color: '#00FFFF',
                  fontWeight: 600,
                },
                numStyle1: {
                  padding: [3, 0, 0, 8],
                  fontSize: 30,
                  color: '#006CED',
                  fontWeight: 600,
                },
                numStyle2: {
                  padding: [3, 0, 0, 8],
                  fontSize:30,
                  color: '#FFE000',
                  fontWeight: 600,
                },
                nameStyle: {
                  padding: [3, 0, 0, 8],
                  verticalAlign: 'right',
                  align: 'left',
                  width: 60,
                  fontSize: 12,
                  color: '#ffffff',
                  fontWeight: 400,
                },
              },
            },
            formatter: name => {
              for (let i = 0; i < legendData.length; i++) {
                if (name == legendData[i]) {
                  return `{numStyle${i}|${name.substring(name.indexOf("\/")+1,name.length)}}\n{nameStyle|${name.substring(0,name.indexOf("/"))}}`
                }
              }
            },
            itemGap: 20, // 图例之间的间隔
          },
          toolbox: {
            show: false,
          },
          series: {
            type: 'pie',
            clockwise: false, //旋转顺序
            radius: ['60%', '80%'],
            center: ['25%', '50%'],
            emphasis: {
              scale: false,
            },
            label: {
              show: false,
            }, //箭头
            data: dataline,
          },
        };
        this.myChart.setOption(option)
      },
    }
  }

</script>
<style scoped>

</style>

 

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

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

相关文章

使用python3编写代码比对excle表格中的日期

表格类似如下&#xff1a; 需要提取H列和I列的日期&#xff0c;并且进行日期分割&#xff0c;提取出日期&#xff0c;将日期倒置&#xff0c;倒置后&#xff0c;拿 关闭时间减去创建时间&#xff0c;得出超过3天的数据&#xff0c;提取出相应的行&#xff1a; # #-* -编码&…

【.net】本地调试运行只能用localhost的问题

【.net】本地调试运行只能用localhost的问题 解决方案 找到到项目目录下 隐藏文件夹 .vs /项目名称/config/applicationhost.config <bindings><binding protocol"http" bindingInformation"*:1738:localhost" /></bindings> 再加一条你…

期待相聚|2023 Google 谷歌开发者大会现场见

直达科技前沿 点亮技术灵感 激发新思妙想 收获多元共进 长按下方图片&#xff0c;扫码报名参会 *仅出于确认身份&#xff0c;请填写与身份证件一致的姓名&#xff0c;并确认邮箱地址及联系电话准确无误。 2023 Google 开发者大会主旨演讲将会分享 Google 如何通过更智能、更…

Harvard transformer NLP 模型 openNMT 简介入门

项目网址&#xff1a; OpenNMT - Open-Source Neural Machine Translation logo&#xff1a; 一&#xff0c;从应用的层面先跑通 Harvard transformer GitHub - harvardnlp/annotated-transformer: An annotated implementation of the Transformer paper. ​git clone http…

跟左神刷算法02 基础

题目1 先根据难度拍个序&#xff0c;难度一样的按收入大的排序&#xff0c;因为他每份都有招无数份人。难度相同的就留一个最大的。难度增加了&#xff0c;而薪水变小了&#xff0c;直接丢掉。难度和薪水保持一个单调性就可以了。 用有序表取做。 key是排序的。 迅速查到小于…

用gdal库读取tif影像并填充边缘,并根据窗口大小滑动裁剪裁剪(包含gdal转PIL)

相关文章 PIL&#xff0c;OPENCV之间的转换关系_pil cvtcolor(image)_番茄就要炒鸡蛋的博客-CSDN博客 python GDAL和PIL图像转换_gdal.readasarray和pil_llc的足迹的博客-CSDN博客 一、原始数据 二、分别读取数据 1、gdal读取的array 2、pil读取的array 三、 gdal转pil image …

交换2个元素的值(3种方法)

1.创建临时变量 int main() {int a10;int b20;int tmp0;printf("before:a:%d,b:%d\n",a,b);tmpa;ab;btmp;printf("after :a:%d,b:%d\n",a,b);return 0; }2.加减法 int main() {int a10;int b20;printf("before:a:%d,b:%d\n",a,b);aab;ba-b;aa-…

470. 用 Rand7() 实现 Rand10()

470. 用 Rand7 实现 Rand10 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 470. 用 Rand7() 实现 Rand10() https://leetcode.cn/problems/implement-rand10-using-rand7/description/ 完成情况&#xff1a; 解…

公司内部测试团队可以替代专业的软件检测机构吗,性能测试怎么收费?

第三方软件测试 尽管软件测试是伴随着软件开发的发展而产生的&#xff0c;但是在信息技术日新月异的今天&#xff0c;软件测试逐渐走出开发附庸的定位。 一方面&#xff0c;很多大型企业都在内部设置了专门的测试团队以承接软件系统的测试工作&#xff0c;为产品质量把关。另…

掌握指针进阶:一篇带你玩转函数指针、函数指针数组及指向函数指针数组的指针!!

&#x1f341;博客主页&#xff1a;江池俊的博客 &#x1f4ab;收录专栏&#xff1a;C语言进阶之路 &#x1f4a1;代码仓库&#xff1a;江池俊的代码仓库 &#x1f3aa;我的社区&#xff1a;GeekHub &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐ 文章目录 一…

如何恢复QQ聊天记录,教你3个好方法

有没有这样一款软件&#xff0c;你很久不使用但却不舍得卸载&#xff0c;这款软件便是QQ。作为腾讯最出色的社交产品&#xff0c;其影响力之大不言而喻。 虽然现在微信的普及程度远远超过了QQ&#xff0c;但大多数用户还保留着QQ。QQ在传输文件数据方面也确实更加方便&#xf…

【高级程序设计语言C++】位图

1. 位图1.1. 位图的模型图1.2. 判断一个数是否存在 2. 位图的实现2.1. 位图的基础模型2.2. 位图开辟空间的大小2.3. 位图的插入2.4. 位图的删除2.5. 位图的查询 3. 位图的应用4. 哈希切分5. 位图的优缺点 1. 位图 C中的位图&#xff08;Bitset&#xff09;是一种用于存储和操作…

Windows下问题定位

1、内存相关知识点&#xff1b; 1&#xff09;windows下32位进程&#xff0c;用户态为2G内存&#xff0c;内核态也为2G内存&#xff1b;却别于linux操作系统&#xff1b; 备注&#xff1a;可以通过命令行与管理员权限&#xff0c;启动3G的用户态空间&#xff0c;但是部…

【数学建模】-- 数学规划模型

概述&#xff1a; 什么是数学规划&#xff1f; 数学建模中的数学规划是指利用数学方法和技巧对问题进行数学建模&#xff0c;并通过数学规划模型求解最优解的过程。数学规划是一种数学优化方法&#xff0c;旨在找到使目标函数达到最大值或最小值的变量取值&#xff0c;同时满足…

免费内网穿透哪个好?

神卓互联是一种内网穿透技术&#xff0c;可以实现在外部网络访问公司内网的服务。通过建立一个加密的通道&#xff0c;神卓互联可以将内网的动态IP绑定技术&#xff0c;实现远程访问。 使用神卓互联进行内网穿透的步骤如下&#xff1a; 在公司内网中&#xff0c;安装并配置神卓…

Linux 进程间通信——有名管道和无名管道

一、管道的概念 当从一个进程连接数据流到另一个进程时&#xff0c;我们使用管道。通常把一个进程的输出通过管道连接到另一个进程的输入。 管道可以用来在两个进程之间传递数据&#xff0c;如&#xff1a; ps -ef | grep “bash”, 其中‘|’就是管道&#xff0c;其作用就是…

CH32V203 单片机 I2C 使用

CH32V203系列是基于32位RISC-V内核设计的工业级增强型低功耗通用微控制器&#xff0c;高性能&#xff0c;最高支持144MHz系统主频&#xff0c;低功耗&#xff0c;运行功耗低至45uA/MHz。CH32V203集成双路USB接口&#xff0c;支持USB Host主机及USB Device设备功能&#xff0c;具…

[NAS4]Tiny adversarial multi-objective one-shot neural architecture search

论文链接&#xff1a;https://arxiv.org/abs/2103.00363v1 代码链接&#xff1a; 摘要&#xff1a;移动设备中广泛使用的微小神经网络&#xff08;TNN&#xff09;容易受到对抗性攻击&#xff0c;对TNN鲁棒性的更先进研究需求也越来越大。 本文关注于如何在不损失模型精度的…

【win7Window】高仿Windows7系统窗体

特性&#xff1a; 任意拖拽到边界可以最大化、半屏放大双击边界可以水平、纵向最大化可以拖拽四边、四个顶点调整窗体尺寸可以最大化、还原、最小化、关闭支持双击标题栏最大化、还原支持双击左上角图标关闭窗体 win7Window源码 <template><div :class"$options…

JS的解析与Js2Py使用

JS的解析与Js2Py使用 JS的解析事件监听器搜索关键字请求关联JS文件 Js2PyJs2Py的简单使用安装Js2Py执行JavaScript代码调用JavaScript函数 Js2Py的应用示例创建JavaScript文件使用JavaScript JS的解析 在一个网站中&#xff0c;登录密码通常是会进行加密操作的&#xff0c;那么…