echarts利用graphic属性给饼图添加内圈图片及外圈图片(可自适应宽度位于饼图中心)

news2024/11/26 0:51:19

最终效果图:
在这里插入图片描述

目录

  • 前言
  • 资源
  • 主要部分
    • graphic介绍
    • style介绍
    • 代码
  • 加载饼图方法(option所有的配置)

前言

思路是看到这个博客启发的:点击跳转查看博客,然后在graphic属性里改了我的实际需求,譬如图片的宽高、图片位置等。

资源

外围图片、内维图片可以自己定义。这里主要用到了两个图片:
在这里插入图片描述

主要部分

graphic介绍

在图表的option配置里,给graphic添加图片以及图片设置。left和top均设置为"center",可根据屏幕分辨率自动判断中心位置。

graphic 用于添加自定义图形或文本元素到图表中的配置项,可添加文本、图形、图片等自定义元素,
这个属性通常用于创建一些特殊的标注或装饰,比如在特定位置添加一个文本标签、绘制一个自定义形状,或者放置一个图像等

常用的是添加文字和图片,下面是给图表通过graphic添加自定义文字的方法:

data.linebalance = 66.123;
option.graphic.push(
          {
            type: "text",
            right: 155,
            top: 28,
            style: {
              text: "人工站线平衡率:",
              fill: "#fff", // 文字颜色
              fontSize: 14, // 文字大小
            },
          },
          {
            type: "text",
            right: 100,
            top: 28,
            style: {
              text: (data.linebalance * 100).toFixed(1) + "%",
              fill: "#fc8c1c", // 文字颜色
              fontSize: 14, // 文字大小
            },
          }
        );
}

style介绍

style 是其中一个常用的属性,用于设置图形元素的样式

image:指定图形元素所使用的图片资源,可以是图片的 URL 或者 dataURI。
width:指定图形元素的宽度。可以是整数值(像素),也可以是百分比值。如果需要自适应图表宽度,可以使用百分比值,但需要注意,有些情况下百分比值可能导致图片不显示,这可能是因为容器大小未正确设置或者其他原因。
height:指定图形元素的高度。同样可以是整数值(像素)或者百分比值。
opacity:指定图形元素的不透明度,取值范围为 0(完全透明)到 1(完全不透明)之间。

代码

通过graphic添加自定义图片的方法:

graphic: [
          {
            type: "image",
            id: "logo",//唯一值,不可与其他graphic里的id一致
            left: "center", //调整图片位置
            top: "center", //调整图片位置
            z: -10,//确保图片在饼图下方
            //设置图片样式
            style: {
              image: centerImg,
              //   width: 80,
              //   height: 80,
              width: ciclrImgChart.getWidth() - 105,
              height: ciclrImgChart.getWidth() - 105,
              opacity: 1,
            },
          },
          {
            type: "image",
            id: "logo2",//唯一值,不可与其他graphic里的id一致
            left: "center",
            top: "center",
            z: -10,
            //设置图片样式 width、height只能用整型值,不可用百分比(会导致图片不显示)
            style: {
              image: outCircleImg,
              //   width: 200,
              //   height: 200,
              width: ciclrImgChart.getWidth() + 5,
              height: ciclrImgChart.getWidth() + 5,
              opacity: 1,
            },
          },
        ],

加载饼图方法(option所有的配置)

// 初始化圈形图
    initCircleImgFun() {
      var centerImg = require("./images/你的内圈图片路径.png");
      var outCircleImg = require("./images/你的外圈图片路径.png");

      if (ciclrImgChart != null && ciclrImgChart != "" && ciclrImgChart != undefined) {
        ciclrImgChart.dispose();
      }
      ciclrImgChart = echarts.init(document.getElementById("circleImgChart"));
      var option;
      option = {
        // 用于添加自定义图形或文本元素到图表中的配置项,可添加文本、图形、图片等自定义元素
        graphic: [
          {
            type: "image",
            id: "logo",
            left: "center", //调整图片位置
            top: "center", //调整图片位置
            z: -10,
            //设置图片样式
            style: {
              image: centerImg,
              //   width: 80,
              //   height: 80,
              width: ciclrImgChart.getWidth() - 105,
              height: ciclrImgChart.getWidth() - 105,
              opacity: 1,
            },
          },
          {
            type: "image",
            id: "logo2",//唯一值,不可与其他graphic里的id一致
            left: "center",
            top: "center",
            z: -10,
            //设置图片样式 width、height只能用整型值,不可用百分比(会导致图片不显示)
            style: {
              image: outCircleImg,
              //   width: 200,
              //   height: 200,
              width: ciclrImgChart.getWidth() + 5,
              height: ciclrImgChart.getWidth() + 5,
              opacity: 1,
            },
          },
        ],
        series: [
          {
            type: "pie",
            radius: ["85%", "65%"],
            data: [
              { value: 60, name: "4H未上架", percent: "30%" },
              { value: 60, name: "0~2H未上架", percent: "30%" },
              { value: 10, name: "2~4H未上架", percent: "10%" },
              { value: 60, name: "正在检验", percent: "30%" },
            ],
            hoverAnimation: false,
            label: {
              normal: {
                show: false,
              },
            },
            color: ["#ff8d1a", "#29c4e3", "#2a82e4", "#43cf7c"],
          },
        ],
      };

      option && ciclrImgChart.setOption(option);
    },

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

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

相关文章

Django框架之python后端框架介绍

一、网络框架及MVC、MTV模型 1、网络框架 网络框架(Web framework)是一种软件框架,用于帮助开发人员构建Web应用程序和Web服务。它提供了一系列预先编写好的代码和工具,以简化开发过程并提高开发效率。网络框架通常包括以下功能…

Python-VBA函数之旅-len函数

目录 一、len函数的常见应用场景: 二、len函数使用注意事项: 三、如何用好len函数? 1、len函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:神奇夜光杯-CSDN博客 一、…

【上岗认证】错题整理记录

目录 🌞一、阶段1:编码规范 🌊编码规范考试-CC 🌞二、阶段2:开发基础 🌊C/C 🌊数据库(Oracle/MySql) 🌞三、阶段3:测试基础 🌊…

好的猫咪主食冻干到底该咋选?品控稳定的主食冻干推荐

315中国之声报道的河北省邢台市南和区某宠粮代工厂的“行业潜规则”,给各位铲屎官拉响了警钟。配料表上写的鸡肉含量为52%,新鲜鸡小胸含量为20%,所谓的鲜鸡肉其实就是鸡肉粉。本来养宠物是为了让自己身心愉悦,但这样的行业乱象弄得…

就业班 第三阶段(负载均衡) 2401--4.18 day2 LVS-DR模式

3、LVS/DR 模式 实验说明: 1.网络使用NAT模式 2.DR模式要求Director DIP 和 所有RealServer RIP必须在同一个网段及广播域 3.所有节点网关均指定真实网关 主机名ip系统用途client172.16.147.1mac客户端lvs-server172.16.147.154centos7.5分发器real-server1172.16.…

我的创作纪念日_十多年来的坚守

机缘 今天是我的码龄15周年,也是我撰写了第 1 篇技术博客:《如何把Centos stream 9桌面字体调大》三周年的时子,我看到 CSDN官方给我的短信“魔极客 ,有幸再次遇见你”,很是高兴,为了感谢CSDN官方给我的回…

回归与聚类——K-Means(六)

什么是无监督学习 一家广告平台需要根据相似的人口学特征和购买习惯将美国人口分成不同的小 组,以便广告客户可以通过有关联的广告接触到他们的目标客户。Airbnb 需要将自己的房屋清单分组成不同的社区,以便用户能更轻松地查阅这些清单。一个数据科学团队…

16 JavaScript学习: 类型转换

JavaScript 类型转换 Number() 转换为数字, String() 转换为字符串, Boolean() 转换为布尔值。 JavaScript 数据类型 在 JavaScript 中有 6 种不同的数据类型: stringnumberbooleanobjectfunctionsymbol 3 种对象类型: Obje…

双向链表专题

文章目录 目录1. 双向链表的结构2. 双向链表的实现3. 顺序表和双向链表的优缺点分析 目录 双向链表的结构双向链表的实现顺序表和双向链表的优缺点分析 1. 双向链表的结构 注意: 这⾥的“带头”跟前面我们说的“头节点”是两个概念,带头链表里的头节点…

强大CSS3可视化代码生成器

DIY可视化CSS可视化代码生成器是一种工具,它允许用户通过图形界面直观地创建和编辑CSS样式,然后自动生成相应的CSS代码。DIY可视化对于那些不熟悉CSS语法或者想要更直观地调整样式的人来说特别有用。 提供了强大的CSS可视化编辑功能,用户可以…

【牛客网】:链表的回文结构(提升)

🎁个人主页:我们的五年 🔍系列专栏:每日一练 🌷追光的人,终会万丈光芒 目录 🏝问题描述: 🏝问题分析: 步骤一:查找链表的中间节点 步骤二&am…

小红书美妆类笔记文案有哪些特点?

小红书作为一个分享和发现美好生活的平台,美妆护肤时尚类笔记在其中占据了重要的地位。这些笔记的文案特点通常表现为以下几点: 1.**情感化叙述**: 这类文案往往运用生动形象的词汇和细腻的情感表达,使文案更贴近读者的内心感受…

vue使用海康控件开发包——浏览器直接查看海康监控画面

1、下载控件开发包 2、安装插件(双击/demo/codebase/HCWebSDKPlugin.exe进行安装) 3、打开/demo/index.html文件 4、在页面上输入你的海康监控的登录信息进行预览 如果有监控画面则可以进行下面的操作 注意:以下操作都在Vue项目进行 5、复…

【笔试强训】除2!

登录—专业IT笔试面试备考平台_牛客网牛客网是互联网求职神器,C、Java、前端、产品、运营技能学习/备考/求职题库,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力https://ac.nowcoder.com/acm/…

MySQL面试——聚簇/非聚簇索引

存储引擎是针对表结构,不是数据库 引擎层:对数据层以何种方式进行组织 update:加索引:行级锁;不加索引:表级锁

BGP的基本概念和工作原理

AS的由来 l Autonomous System 自治系统,为了便于管理规模不断扩大的网络,将网络划分为不同的AS l 不同AS通过AS号区分,AS号取值范围1-65535,其中64512-65535是私有AS号 l IANA机构负责AS号的分发 AS之…

计算机体系结构与OS管理

冯诺依曼体系结构 我们只看数字信号(红色的线): 计算机数据的流动决定了计算机的效率,数据流动就是数据在不同地方的来回拷贝。 所以我们会采取让硬件设备直接与CPU链接的方式,所以就有了储存器了。储存器大大提升了效…

AppScan 扫描工具及使用

一、简介 原名 watchire Appscan ,2007年被IBM收购,成为IBM Appscan。IBM AppScan是一款非常好用且功能强大的Web 应用安全测试工具 曾以 Watchfire AppScan 的名称享誉业界,Rational AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检…

新手Pytorch入门笔记-transforms.Compose()

我使用的图片是上图,直接下载即可 transforms.Compose 是PyTorch中的一个实用工具,用于创建一个包含多个数据变换操作的变换对象。这些变换操作通常用于数据预处理,例如图像数据的缩放、裁剪、旋转等。使用transforms.Compose 可以将多个数据…

【数据结构(邓俊辉)学习笔记】绪论05——动态规划

文章目录 0.前言1. Fibonacci数应用1.1 fib():递归1.1.1 问题与代码1.1.2 复杂度分析1.1.3 递归分析 1.2 fib():迭代 0.前言 make it work,make it right,make it fast. 让代码能够不仅正确而且足够高效地…