Echarts自定义折线图的节点与图标

news2025/1/17 21:51:36

文章目录

    • 需求
    • 分析

需求

如图所示需要自定义节点的图标展示在这里插入图片描述

分析

首先需要 symbol 属性添加引入
需要用到一个工具:http://tu.chacuo.net/imagetodataurl
在这里插入图片描述
这里是我的几个图片转出来的svg

export const lineColors = [
  '#FF5360',
  '#45CB85',
  '#EEB902',
  '#9CEC0F',
  '#FF9562',
  '#1e90ff',
  '#464DE4',
  '#FF9CDE',
  '#3591CE',
  '#9A2EF0',
  '#4DE2F8',
]
export const randomColor = (index) => {
  if(index!==undefined &&  index<=10)
    return lineColors[index]
  else {
    let r, g, b;
    let tape;
    r = Math.floor(Math.random() * 256);
    g = Math.floor(Math.random() * 256);
    b = Math.floor(Math.random() * 256);
    tape = "rgb(" + r + "," + g + "," + b +")";
    return tape; 
  }
}
export const svgPath = (index) => {
  const arr = [
    "M5,-6.123234e-17 L5,3 L8,3 L8,5 L5,5 L5,8 L3,8 L3,5 L0,5 L0,3 L3,3 L3,6.123234e-17 L5,-6.123234e-17 Z",
    "M8,0 L8,8 L4,4 L0,8 L4.4408921e-16,0 L4,4 L8,0 Z",
    "M62 512c0 248.528 201.472 450 450 450s450-201.472 450-450c0-248.528-201.472-450-450-450-248.528 0-450 201.472-450 450z",
    "M4,0 C5.65685425,0 7,1.34314575 7,3 C7,4.26577899 6.21608261,5.34846427 5.10725622,5.78904745 L4,8 L2.89374072,5.78944336 C1.78438729,5.34911315 1,4.26615831 1,3 C1,1.34314575 2.34314575,0 4,0 Z",
   
    "M1001.514227 98.652371c-131.657897-126.949608-330.192495-123.84066-460.182433-17.075464-133.60033-103.086186-343.261691-108.945155-457.200165 18.384495-113.938474 127.334928-103.191753 325.674227-5.193897 481.517526 97.992577 155.848577 381.783093 436.878515 462.394062 440.008577 80.616247 3.130062 393.474639-297.989278 499.558928-462.383505 106.084289-164.38367 92.276124-333.496742-39.376495-460.451629z",
    "M505.668923 74.919385c-17.142154 19.282708-34.282338 44.994954-100.688738 149.962831-32.143754 53.5552-59.984738 102.829292-85.698954 152.103385-49.274092 96.407631-98.548185 227.089723-98.548185 310.636308 2.140554 72.847754 29.993354 134.973046 85.698954 186.387692C364.266338 925.426215 430.682585 951.138462 509.950031 951.138462s147.822277-25.712246 203.52-79.267446c57.844185-53.565046 85.698954-115.688369 83.5584-188.526277C797.026462 462.684554 503.518523 72.778831 505.668923 74.919385z",
  
    "M781.186088 616.031873q17.338645 80.573705 30.59761 145.848606 6.119522 27.537849 11.219124 55.075697t9.689243 49.976096 7.649402 38.247012 4.079681 19.888446q3.059761 20.398406-9.179283 27.027888t-27.537849 6.629482q-5.099602 0-14.788845-3.569721t-14.788845-5.609562l-266.199203-155.027888q-72.414343 42.836653-131.569721 76.494024-25.498008 14.278884-50.486056 28.557769t-45.386454 26.517928-35.187251 20.398406-19.888446 10.199203q-10.199203 5.099602-20.908367 3.569721t-19.378486-7.649402-12.749004-14.788845-2.039841-17.848606q1.01992-4.079681 5.099602-19.888446t9.179283-37.737052 11.729084-48.446215 13.768924-54.055777q15.298805-63.23506 34.677291-142.788845-60.175299-52.015936-108.111554-92.812749-20.398406-17.338645-40.286853-34.167331t-35.697211-30.59761-26.007968-22.438247-11.219124-9.689243q-12.239044-11.219124-20.908367-24.988048t-6.629482-28.047809 11.219124-22.438247 20.398406-10.199203l315.155378-28.557769 117.290837-273.338645q6.119522-16.318725 17.338645-28.047809t30.59761-11.729084q10.199203 0 17.848606 4.589641t12.749004 10.709163 8.669323 12.239044 5.609562 10.199203l114.231076 273.338645 315.155378 29.577689q20.398406 5.099602 28.557769 12.239044t8.159363 22.438247q0 14.278884-8.669323 24.988048t-21.928287 26.007968z",
    "M512 69.479l442.498 442.498-442.498 442.498-442.498-442.498 442.498-442.498z",
    "M511.999488 819.413462 72.8374 204.586538 951.1626 204.586538Z",
    "M204.58705 951.162088 204.58705 72.836889 819.41295 511.998977Z",
    "M951.1626 819.412438 72.8374 819.412438 511.999488 204.586538Z",
    "M819.41295 72.835865 819.41295 951.161065 204.586027 512Z",
    "M868.2 615.5L689.7 505.7 866.5 396c41.1-25.5 53.8-79.6 28.3-120.7l-6.3-10.1c-25.5-41.1-79.6-53.7-120.7-28.2L604.3 338.4V151.6c0-48.4-39.3-87.6-87.7-87.6h-11.9c-48.4 0-87.7 39.3-87.7 87.6V338L254.4 238c-41.2-25.4-95.2-12.5-120.6 28.7l-6.2 10.2c-25.4 41.2-12.5 95.3 28.7 120.6l177.2 109-178 110.4c-41.1 25.6-53.8 79.6-28.3 120.7l6.3 10.1c25.5 41.1 79.6 53.8 120.7 28.2l162.9-101.1v197.4c0 48.4 39.3 87.7 87.7 87.7h11.9c48.4 0 87.7-39.2 87.7-87.7V673l165.8 102c41.2 25.4 95.2 12.5 120.6-28.8l6.2-10.1c25.3-41.2 12.5-95.2-28.8-120.6z",
    "M529.611373 1023.38565c-146.112965 0-270.826063-51.707812-374.344078-155.225827C51.74928 764.641808 0.041469 639.826318 0.041469 493.815745c0-105.053891 29.693595-202.326012 88.978393-292.22593 59.38719-89.797526 137.000103-155.942569 232.83874-198.63991 6.041111-4.607627 12.184613-3.788493 18.225724 2.252618 7.576986 4.607627 9.931996 11.365479 6.860244 20.580733C322.677735 83.736961 310.493122 142.202626 310.493122 201.589815c0 135.464227 48.328885 251.474031 144.986656 348.131801 96.657771 96.657771 212.667574 144.986656 348.131801 144.986656 74.541162 0 139.252721-11.365479 194.032283-34.19883C1003.684974 655.799424 1009.726084 656.618558 1015.767195 662.659669c7.576986 4.607627 9.931996 11.365479 6.860244 20.580733C983.104241 786.758417 918.802249 869.286132 829.721465 930.925939 740.743072 992.565746 640.706375 1023.38565 529.611373 1023.38565z" 
  ]
  return arr[index % arr.length]
}
  • 接下来就是引入就可以了

import { svgPath, randomColor } from '@/utils/echsrts'

const series = []
data.series.forEach((item, index) => {
    const obj = {
        name: item.name,
        type: 'line',
        data: item.data,
        symbol: 'path://' + svgPath(index),
        color: randomColor(index),
        yAxisIndex: item.yAxisIndex || 0,
        showSymbol: true,
        showAllSymbol: true,
        symbolSize: 8
    }
    series.push(obj)
})
option.series = series
chartData.value = option

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

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

相关文章

书生作业2

Task 1 生成200字以上的笑话&#xff0c;可以看到使用不同的提示词&#xff0c;会有不同的效果。 如果使用提示词“讲一个笑话.200字以上”&#xff0c; 会有偶发的输出较短的笑话的情况。 如果使用提示词“讲一个200字以上的笑话”时&#xff0c;结果相对稳定。 下载目前两种…

Collection与数据结构 Stack与Queue(一): 栈与Stack

1. 栈 1.1 概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&…

STL常用容器(2)---vector容器

1.1 vector基本概念 功能&#xff1a; vector数据结构和数组非常相似&#xff0c;也称为单端数组 vector与普通数组区别&#xff1a; 不同之处在于数组是静态空间&#xff0c;而vector可以动态扩展 动态扩展&#xff1a; 并不是在原空间之后的续接的新空间&#xff0c;而…

腾讯云4核8G配置的服务器有哪些优惠?价格好不?

2024年腾讯云4核8G服务器租用优惠价格&#xff1a;轻量应用服务器4核8G12M带宽646元15个月&#xff0c;CVM云服务器S5实例优惠价格1437.24元买一年送3个月&#xff0c;腾讯云4核8G服务器活动页面 txybk.com/go/txy 活动链接打开如下图&#xff1a; 腾讯云4核8G服务器优惠价格 轻…

邀请媒体采访报道对企业宣传有何意义?

传媒如春雨&#xff0c;润物细无声的&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 邀请媒体采访报道对企业宣传具有多重意义&#xff1a; 提升品牌知名度和曝光度&#xff1a;媒体是信息传播的重要渠道&#xff0c;通过媒体的报道&#xff0c;企业及其活动、产品能够…

SpringBoot整合Flowable/Activiti

SpringBoot版本: 2.0.1.RELEASE Flowable版本: 6.3.1 Activiti版本: 6.0.0 一.添加pom依赖 因为之前我整合的时候有报错关于sqlsession的错误,后面查询文章才发现flowable要排除掉mybatis,又没说具体排除哪一个,所以我这干脆全部排除了 <!-- Flowable dependencies -->…

Servlet 的基本理解

Servlet 是JavaEE规范的一种&#xff0c;主要是为了扩展Java作为Web服务的功能&#xff0c;统一接口。由其他内部厂商如tomcat&#xff0c;jetty内部实现web的功能。如一个http请求到来&#xff1a;容器将请求封装为servlet中的HttpServletRequest对象&#xff0c;调用init()&a…

Spring Security 实现后台切换用户

Spring Security version 后端代码&#xff1a; /*** author Jerry* date 2024-03-28 17:47* spring security 切换账号*/RestController RequiredArgsConstructor RequestMapping("api/admin") public class AccountSwitchController {private final UserDetailsSe…

即将截稿 CCF-A多媒体顶会ACM MM‘24 北京时间4月9日提交摘要

会议之眼 快讯 第32届ACM MM (ACM MULTIMEDIA)即国际多媒体会议将于 2024 年 10月28 -日11月1日在澳大利亚墨尔本隆重举行&#xff01;MM是由ACM&#xff08;Association for Computing Machinery&#xff0c;计算机协会&#xff09;主办的国际性学术会议&#xff0c;是计算机…

应对苹果商店审核失败:解决Flutter应用被拒绝的常见情况与解决方案

引言 Flutter是一款由Google推出的跨平台移动应用开发框架&#xff0c;其强大的性能和流畅的用户体验使其备受开发者青睐。然而&#xff0c;开发一款应用只是第一步&#xff0c;将其成功上架到苹果商店才是实现商业目标的关键一步。本文将详细介绍如何使用Flutter将应用程序上…

Day81:服务攻防-开发框架安全SpringBootStruts2LaravelThinkPHPCVE复现

目录 PHP-框架安全-Thinkphp&Laravel Laravel CVE-2021-3129 RCE Thinkphp 版本3.X RCE-6.X RCE 版本6.X lang RCE J2EE-框架安全-SpringBoot&Struts2 Struct2 旧漏洞(CVE-2016-0785等) struts2 代码执行 &#xff08;CVE-2020-17530&#xff09;s2-061 Str…

为什么要学习数学/科学史?

一、说明 哈代的经典著作《数学家的道歉》&#xff0c;他在书中为自己选择的数学职业辩护&#xff0c;他坦诚了自己一生贡献之微不足道。事实是&#xff0c;哈代没什么可道歉的。哈代是一位真正的顶级数学家&#xff0c;完全有资格获得他选择的头衔&#xff0c;并且以伯乐之能…

HarmonyOS NEXT应用开发之ForEach:循环渲染

ForEach接口基于数组类型数据来进行循环渲染&#xff0c;需要与容器组件配合使用&#xff0c;且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如&#xff0c;ListItem组件要求ForEach的父容器组件必须为 List组件 。 说明&#xff1a; 从API version 9开始&a…

蓝桥杯嵌入式备考笔记

keil配置 LED-KEY-LCD 留下这几个 按键 创建俩个文件写代码&#xff0c;记得把这两个文件加进工程 led uwTick 1ms执行一次 写错了 不是1000 是100 PD2 SET 表示打开锁存器 可以操作LED LED对应PC引脚拉高是熄灭 key 如果要在main使用需要extern LCD最多21位 …

C语言进阶课程学习记录-第21课 - 宏定义与使用分析

C语言进阶课程学习记录-第21课 - 宏定义与使用分析 宏定义的本质实验-字面量比较宏定义表达式实验-表达式有效性宏的作用域实验-作用域分析内置宏内置宏演示小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学…

012:vue3使用vue-i18n实现国际化

文章目录 1. 安装 vue-i18n2. 创建文件存储翻译的语言3. 注册i18n实例4. 在main.ts中引入vue-i18n实例5. 在组件模板中使用6. 在js中使用7. locale.value 实现国际化语言切换8. vue3 中ref里面的国际化值没生效问题 1. 安装 vue-i18n cnpm i --save vue-i18n2. 创建文件存储翻…

进销存管理系统:食品批发零售迈向数字化未来-亿发

随着消费逐步复苏&#xff0c;食品批发零售行业也迎来了客流的回升&#xff0c;实体店重新焕发了生机。然而&#xff0c;随着数字化时代的来临&#xff0c;传统的食品批发零售企业面临着新的挑战和机遇。些企业正积极实施数字化转型&#xff0c;通过布局线上线下多业态的融合发…

jQuery(一)

文章目录 1. 基本介绍2.原理示意图3.快速入门1.下载jQuery2.创建文件夹&#xff0c;放入jQuery3.引入jQuery4.代码实例 4.jQuery对象与DOM对象转换1.基本介绍2.dom对象转换JQuery对象3.JQuery对象转换dom对象4.jQuery对象获取数据获取value使用val&#xff08;&#xff09;获取…

翻译: 硅谷软件工程师面试:准备所需的一切

没有人有时间去做成百上千道LeetCode题目&#xff0c;好消息是你实际上并不需要做那么多题目就能够在FAANG公司找到工作&#xff01; 我曾经在Grab工作&#xff0c;这是东南亚的一家共享出行公司&#xff0c;但我对工作感到沮丧&#xff0c;想要进入FAANG公司&#xff0c;但我…

编译好的C++应用程序拷贝到其它电脑,提示dll未找到依赖项的解决方法。

编译好的C应用程序拷贝到其它电脑上&#xff0c;运行时出现提示dll未找到依赖项。 由于dll依赖于其它dll&#xff0c;在开发用电脑上的环境不能完全与其它电脑相同。 解决办法是找到调用到的dll依赖的所有dll&#xff0c;拷贝到运行目录下。 在开发电脑上&#xff1a; 1、开…