echarts组件——漏斗图

news2024/9/24 11:32:41

echarts组件——漏斗图

在这里插入图片描述

组件代码

<template>
  <div :class="classname" :style="{height:height,width:width}" />
</template>

<script>
import * as echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from './mixins/resize'

export default {
  mixins: [resize],
  props: {
    classname: {
      type: String,
      default: 'chart'
    },
    width: {
      type: String,
      default: '100%'
    },
    height: {
      type: String,
      default: '100%'
    },
    color: { // 颜色
      type: Array,
      default: () => ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc']
    },
    legenddata: { // 图例
      type: Array,
      default: () => []
    },
    seriesbottom: {
      type: Number,
      default: 80
    },
    funneldata: {
      type: Array,
      default: () => [
        { value: 100, ratio: 100, name: 'Show' },
        { value: 80, ratio: 80, name: 'Click' },
        { value: 20, ratio: 20, name: 'Visit' }
      ]
    },
    labelshow: {
      type: Boolean,
      default: false
    },
    min: { // 数据为0时,最小尺寸
      type: Number,
      default: 0
    },
    emphasisshow: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      chart: null
    }
  },
  watch: {
    funneldata: {
      deep: true,
      handler(val) {
        this.$nextTick(() => {
          this.initChart()
        })
      }
    }
  },
  mounted() {
  },
  beforeDestroy() {
    if (!this.chart) {
      return
    }
    this.chart.dispose()
    this.chart = null
  },
  methods: {
    initChart() {
      if (!this.chart) {
        this.chart = echarts.init(this.$el, 'macarons')
      }

      this.chart.setOption({
        color: this.color,
        tooltip: {
          trigger: 'item',
          formatter: (params) => {
            let result = ''
            if (params.data.ratio) {
              result = `<div style="display: flex; justify-content: space-between"><span>${params.data.name}:&nbsp;</span><span>${params.data.value}, 占比 ${params.data.ratio}%</span></div>`
            } else {
              result = `<div style="display: flex; justify-content: space-between"><span>${params.data.name}:&nbsp;</span><span>${params.data.value}</span></div>`
            }
            return result
          }
        },
        legend: {
          show: this.legenddata.length > 0,
          data: this.legenddata,
          bottom: '0',
          orient: 'vertical'
        },
        series: [
          {
            name: '',
            type: 'funnel',
            left: '10%',
            top: '3%',
            bottom: this.seriesbottom,
            width: '80%',
            min: this.min,
            // max: 100,
            minSize: `${this.min}%`,
            maxSize: '100%',
            sort: 'descending',
            label: {
              show: this.labelshow,
              color: '#ffffff',
              position: 'inside',
              formatter: '{b}\n{c}'
            },
            emphasis: {
              label: {
                show: this.emphasisshow
              }
            },
            data: this.funneldata
          }
        ]
      })
    }
  }
}
</script>

使用组件,传值格式可以看组件的默认数据的格式
在这里插入图片描述

因为需要完整的现实文字和数字,所以此组件当值为0的时候,最下面的不会变成尖的,min参数控制的

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

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

相关文章

虚拟试穿(VTON)和虚拟换装(VD)技术分享

虚拟试穿技术&#xff08;VTON&#xff09;和虚拟换装&#xff08;VD&#xff09;技术是一种应用于电子商务和在线零售的技术&#xff0c;旨在通过数字手段提升用户的购物体验&#xff0c;让用户能够在没有实际试穿的情况下&#xff0c;看到自己穿上特定服装的样子。这种技术的…

js 如何获取文件名

"bbb/aaa/ss.pdf" 如何获取到文件名 ss.pdf split(/) 分割字符串 function getFileName(filePath) {// 使用正斜杠 / 分割路径&#xff0c;并获取最后一个元素作为文件名let parts filePath.split(/)// console.log(parts) // [bbb, aaa, ss.pdf]let fileName pa…

深度解析CancellationToken在HttpClient请求中的应用

概述 在现代的Web开发中&#xff0c;爬虫技术已成为数据获取的重要手段。随着Web技术的发展&#xff0c;服务器端的反爬机制也愈发复杂和智能化&#xff0c;因此&#xff0c;我们需要不断优化爬虫的设计和实现&#xff0c;以提高效率和稳定性。在本文中&#xff0c;我们将重点…

Windows中Git对文件名大小写不敏感的问题解决方法

文章目录 前言一、Git 对文件名大小写不敏感方法1.使用git命令进行修改方法2.关闭git 忽略大小写配置 &#xff08;可以当前项目设置&#xff0c;也可以全局设置 --global&#xff09; 二、新的问题&#xff08;重复的目录&#xff09;原因分析解决方法 前言 Git是一个免费的、…

wpf prism 《4》 事件 发布订阅

PubSubEvent 继承 EventBase TEventType GetEvent() where TEventType : EventBase, new();

Java使用POI创建不同类型单元格

这篇文章将演示如何使用POI 展示如何创建一个包含不同类型单元格&#xff08;如字符串、数字、日期、布尔值和公式&#xff09;的Excel文件&#xff0c;并设置单元格样式&#xff0c;包括字体、颜色、边框和对齐方式。 代码 import org.apache.poi.ss.usermodel.*; import org…

Leetcode5. 最长回文子串(背向指针)

问题描述&#xff1a; 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba" 同样是符合题意的答案。示例 2&#xff1a; 输入&#xff1a;…

医疗数字化转型数据中台架构方案(三)

为实现医疗数字化转型&#xff0c;我们将构建一个全面的数据中台架构&#xff0c;通过整合来自电子病历、影像系统、实验室数据及外部健康数据源的信息&#xff0c;应用大数据技术对数据进行统一存储、处理和分析&#xff1b;该数据中台将采用云计算和分布式架构&#xff0c;支…

MySQL:简述对事务的认识

浅谈对Spring事务的认识&#xff1a;https://xiaoer.blog.csdn.net/article/details/80849971 一、事务的特性 事务是数据库永恒不变的话题&#xff0c; ACID&#xff1a;原子性&#xff0c;一致性&#xff0c;隔离性&#xff0c;持久性。 &#xff08;1&#xff09;原子性&am…

DSLP——改变我团队的数据科学项目管理框架

到目前为止&#xff0c;它是数据科学的最佳框架。您可以将其用于您的团队或仅供您自己使用。以下是我使用它的方式。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 虽然软件工程实践要求问题的产生是为了适应不断变化的客户需求&#xff0c;但我们需要能…

护眼大路灯是不是智商税?全面测评书客、雷士、米家护眼大路灯

目前很多护眼大路灯存在虚标参数、夸大宣传&#xff0c;甚至一些质量低劣的产品还会对眼睛造成更严重的伤害。所以&#xff0c;究竟怎样才能买到一台真正好用的护眼大路灯呢&#xff1f;雷士护眼大路灯真的好吗&#xff1f;本次通过对书客、雷士、米家三款护眼大路灯的实测&…

ODOO17文档打印(输出)方案 -- ODOO17 document printing (output) scheme

根据使用场景不同&#xff0c;ODOO17支持以下几种文档打印(输出)方案&#xff1a; According to different usage scenarios, ODOO17 supports the following document printing (output) schemes: 1、QWEB ODOO原生打印功能&#xff08;生成PDF文档&#xff09; odoo使用的主…

JavaScript高阶 day-04

目录 一.什么是原型&#xff0c;什么是原型链&#xff1f; 二.call / apply / bind 有啥区别 三.JS四种检测数据类型的方式 四.说说继承 五.for..in和for..of和forEach的区别 六.forEach和map方法的区别 七. js高阶中数组的常用的操作方法 八.什么是严格模式 九.什么是…

深入了解Python数据可视化库——Seaborn

数据可视化在数据分析和机器学习领域中占据着重要地位,它不仅能帮助我们直观地理解数据,还能在探索数据、发现模式和趋势时提供极大的便利。Python语言中有多个优秀的可视化库,其中,Seaborn 因其简单易用且美观的图表风格而备受青睐。Seaborn是基于Matplotlib构建的高级API…

“千鼠万抗”全球快速扩张,百奥赛图即将跨过拐点实现盈利

造汽车还是为车企提供智驾技术&#xff0c;开发AI应用还是做底层大模型&#xff0c;造芯片还是研发光刻机&#xff1f;这是发生在每条产业链上关于价值链定位的故事。 产业发展离不开任一环节的玩家&#xff0c;但毋庸置疑的是&#xff0c;向价值链更高的领域突围&#xff0c;…

LLM —— 强化学习(RLHF-PPO和DPO)学习笔记

强化学习整体流程 智能体执行动作与环境进行交互&#xff0c;根据奖励R的反馈结果不断进行更新。 价值函数 奖励将会考虑两个方面的奖励&#xff0c;一个当下的奖励&#xff0c;一个是未来的奖励&#xff08;为了防止陷入局部最优解&#xff09;。 LLM强化学习 强化学习模型分…

四十四、【人工智能】【机器学习】- Kernel Ridge Regression(KRR)

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

【已解决】”只读方式“下的PPT可以编辑吗?

以“只读方式”打开的PPT文件&#xff0c;在编辑时会受到一些限制&#xff0c;那怎样才能正常编辑呢&#xff1f;根据PPT不同模式的“只读方式”&#xff0c;解决方法也不同&#xff0c;一起来看看吧&#xff01; 情况一&#xff1a;PPT属性设置为“只读” 当PPT文件在文件属性…

Python中排序算法之选择排序

选择排序算法是对《Python中排序算法之冒泡排序》中提到的冒泡排序算法的改进。 1 选择排序原理 选择排序是在参加排序的所有元素中找到数值最小&#xff08;或最大&#xff09;的元素&#xff0c;如果它不是左侧第一个元素&#xff0c;就使它与左侧第一个元素中的数据相互交…

CKKWWKKW-Dip-K-NH2;LTX-315;巯基化修饰溶瘤肽;CAS:1345407-05-7

【CKKWWKKW-Dip-K-NH2 简介】 CKKWWKKW-Dip-K-NH2&#xff0c;也被称为LTX-315&#xff0c;是一种具有抗癌活性的溶瘤肽。分子量为1439.79&#xff0c;分子式为C78H106N18O9。氨基酸序列为Lys-Lys-Trp-Trp-Lys-Lys-Trp-Dip-Lys-NH2。LTX-315被发现对多种癌细胞具有抑制作用&…