vue-echarts与echarts图标拐点点击及其图表任意点击方法

要求:两个图表分别点击获取X轴时间点

一、vue-echarts:点击事件(拐点点击 + 图表任意点击)
效果图:
图一:
在这里插入图片描述

图二:
在这里插入图片描述

 <v-chart autoresize ref="oneMyChart" 
 class="chart" :
 option="optionOne" 
 @click="onChartClick($event,1)" // 拐点点击
 @zr:click="handleZrClick($event,1)"// 任意点击
 />

const onChartClick=(event,type)=>{
  console.log("拐点点击",);
  // 点击事件的处理逻辑
  if (event.componentType === 'series') {
  	// 点击了系列索引为 ${seriesIndex} 的数据项,数据索引为 ${dataIndex}`
    const { seriesIndex, dataIndex } = event;
   }
}

const handleZrClick=(event, type)=>{
  // console.log("任意点击",event);
  const pointInPixel= [event.offsetX, event.offsetY];
  // 获取相近的x轴 数据索index
  let dataIndex = "";
  if (optionOne.value.series[0].data.length > 0 && optionTwo.value.series[0].data.length > 0) {//确保点击的两个曲线Y轴有值,即有曲线
	dataIndex = oneMyChart.value.convertFromPixel({seriesIndex:0},[event.offsetX, event.offsetY])[0];
  }
}

二、echarts:点击事件(拐点点击 + 图表任意点击)
案例图:
在这里插入图片描述
代码如下:

<template>
  <div ref="chartRef" :style="{ width: '600px', height: '400px' }"></div>
</template>
 
<script setup>
import { ref, onMounted } from 'vue';
import * as echarts from 'echarts';
 
const chartRef = ref(null);
const chartInstance = ref(null);
 
onMounted(() => {
  chartInstance.value = echarts.init(chartRef.value);
  const option = {
    xAxis: {
      type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
      type: 'value'
    },
    series: [{
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      type: 'line',
      lineStyle: {
            width: 2,
            color: '#ff0000',
            // 设置点击事件
            clickable: true
        },
        itemStyle: {
            normal: {
                color: '#ff0000',
                // 设置点击事件
                clickable: true
            }
      },
      markLine: {
        data: [
          {
            label: {  // 文字标签
                // show: false
                formatter: '事件开始',
                fontSize: '16px',
                backgroundColor: '#004277',
                color: '#0091FF',
                // position: 'middle',
                distance: [10, -3], // 设置标签文字的样式
                // width: 70,
                height: 22
            },
            xAxis: 'Wed' // 这里的 'Wed' 表示与 x 轴标签 'Wed' 对应的位置垂直的线
          }
        ]
      },
      // markPoint:{
      //   data:[
      //     {
      //       name:'ces',
      //       value:934,
      //       xAxis:2,
      //       yAxis:-1
      //     }
      //   ]
      // }
    }]
  };
 
  chartInstance.value.setOption(option);
 
  chartInstance.value.on('click', function (params) {
    console.log('点击拐点==',params);
    if (params.componentType === 'series') {
      const { seriesIndex, dataIndex } = params;
      chartInstance.value.dispatchAction({
            type: 'highlight',
            seriesIndex: 0,
            dataIndex: dataIndex,
            lineStyle: {
              color: '#B1CFFC',
              type: 'dashed'
            }
        });
    }
    // 这里可以实现点击事件后的逻辑
  });

  // 
  chartInstance.value.getZr().on('click',params=>{
    console.log('任意点击==',params);
    const pointInPixel= [params.offsetX, params.offsetY];
    if (chartInstance.value.containPixel('grid',pointInPixel)) {
      // 获取相近的x周index
      let xIndex=chartInstance.value.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0];
      console.log('任意点击==xIndex',xIndex);
	  }
  })
  
});

</script>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot实现中山社区医疗综合服务平台系统项目【项目源码+论文说明】

基于springboot实现中山社区医疗综合服务平台系统演示 摘要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;居民信息因为其管理内容繁杂&…

鸿蒙轻内核A核源码分析系列六 MMU协处理器(2)

3、MMU汇编代码 在arch\arm\arm\include\arm.h文件中&#xff0c;封装了CP15协处理器相关的寄存器操作汇编函数。我们主要看下MMU相关的部分。 3.1 CP15 C2 TTBR转换表基地址寄存器 代码比较简单&#xff0c;结合下图&#xff0c;自行查看即可。该图来自《ARM Cortex-A9 Tec…

07 SpringBoot 配置绑定

所谓“配置绑定”就是把配置文件中的值与 JavaBean 中对应的属性进行绑定。通常&#xff0c;我们会把一些配置信息&#xff08;例如&#xff0c;数据库配置&#xff09;放在配置文件中&#xff0c;然后通过 Java 代码去读取该配置文件&#xff0c;并且把配置文件中指定的配置封…

二叉树之默克尔树(Merkle Tree)

wiki文档 前言 在加密学和计算机科学中,哈希树或默克尔树是一种树形数据结构,其中每个"叶子"节点都被标记为数据块的密码学哈希值,而不是叶子的节点(称为分支、内部节点或inode)则被标记为其子节点标签的密码学哈希值。哈希树允许有效和安全地验证大型数据结构的内…

某信用合作社数据架构规划方案(115页PPT)

方案介绍&#xff1a;为应对数字化转型挑战&#xff0c;某信用合作社计划实施一套新的数据架构&#xff0c;以提高数据处理效率、确保数据安全&#xff0c;并满足业务快速发展的需求。预期成效是完善的数据架构能够全面地提升我社六个方面的竞争能力&#xff0c;更好地服务于目…

HTML初体验

可参考jd.com官网&#xff0c;ctrlu查看当前页面源代码 找到你的项目&#xff0c;在项目中创建html类型的网页文件 标准的HTML正确书写格式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title&…

数据分析-Excel基础函数的使用

Excel基础函数&#xff1a; sum:求和 sumif:单条件求和 sumifs:多条件求和 subtotal:根据筛选求和 if:逻辑判断 vlookup:连接匹配数据 match:查找数值在区域中的位置 index:根据区域的位置返回数值 match、index:一起使用&#xff1a;自动根据列名查找数据 sumifs、match、ind…

RabbitMQ实践——配置Prometheus和Grafana报表

大纲 启用rabbitmq_prometheus插件安装启动Prometheus创建用户下载并解压修改配置启动 安装启动grafana安装启动配置数据源 在《RabbitMQ实践——在Ubuntu上安装并启用管理后台》中我们已经安装成功RabbitMQ及其管理后台。在此基础上&#xff0c;我们将打通它和Prometheus、Gra…

Unity Protobuf+RPC+UniTask

远程过程调用&#xff08;RPC&#xff09;协议详解 什么是RPC协议RPC的基本原理RPC的关键组件RPC的优缺点Protobuf函数绑定CallEncodeRecvDecodeSocket.Send和Recv项目地址 什么是RPC协议 远程过程调用&#xff08;Remote Procedure Call&#xff0c;简称RPC&#xff09;是一种…

C语言| 把数组a赋给数组b

把数组a赋给数组b, 正确的写法是用for循环&#xff0c;将数组a中的元素一个一个赋给数组b的元素。 #include <stdio.h> int main(void) { int a[5] {11, 22, 33, 44, 55}; int b[5]; int i; for(i0; i<5; i) { b[i] a[i]; printf(…

手机连接ESP8266的WIFI,进入内置网页,输入要显示的内容,在OLED显示屏上显示文本

在这篇技术博客中&#xff0c;我们将探讨如何使用ESP8266 Wi-Fi 模块和SSD1306 OLED显示屏&#xff0c;构建一个简易的信息显示和交互系统。此系统能够让用户通过一个简单的Web界面输入信息&#xff0c;并将其显示在OLED屏幕上。这种设备的应用非常广泛&#xff0c;可以用于智能…

多应用对接企业微信授权和扫码登录

多应用对接企业微信授权和扫码登录是一种常见的企业级解决方案&#xff0c;它可以帮助企业实现统一的身份验证和管理&#xff0c;提升用户体验和安全性。本文将介绍如何实现多应用对接企业微信授权和扫码登录的方法和步骤。 # 第一步&#xff1a;注册企业微信开放平台应用 首…

Java——IO流(一)-(4/8):前置知识-字符集、UTF-8、GBK、ASCII、乱码问题、编码和解码等

目录 常见字符集介绍 标准ASCII字符集 GBK&#xff08;汉字内码扩展规范&#xff0c;国标&#xff09; Unicode字符集&#xff08;统一码&#xff0c;万国码&#xff09; 小结 字符集的编码、解码操作 方法 实例演示 常见字符集介绍 标准ASCII字符集 ASCll(American St…

u-boot(四)-顶层目录链接脚本文件(u-boot.lds)介绍

一&#xff0c;IMX6ULL映像文件 1&#xff0c;格式概述 对于IMX6ULL&#xff0c;烧写在EMMC、SD/TF卡上的程序&#xff0c;并不能“自己复制自己”&#xff0c;是“别人把它复制到内存里”。一上电首先运行的是boot ROM上的程序&#xff0c;它从EMMC、SD/TF卡上把程序复制进内…

京准电钟 NTP时间同步服务器助力水库水坝水利自动化建设

京准电钟 NTP时间同步服务器助力水库水坝水利自动化建设 京准电钟 NTP时间同步服务器助力水库水坝水利自动化建设 水库大坝监测系统主要包括渗流监测系统、流量监测系统、雨量监测系统、沉降监测系统组成。每一个监测系统由监测仪器及自动化数据采集装置&#xff08;内置通信装…

AI引领项目管理新时代:效率与智能并驾齐驱

在数字化浪潮的推动下&#xff0c;项目管理领域正迎来一场由AI技术引领的革新。从自动化任务执行到智能决策支持&#xff0c;AI技术的应用正让项目管理变得更加高效、精准和智能化。本文将探讨项目管理人员及其实施团队如何运用AI技术&#xff0c;以及这些技术如何助力项目管理…

如何用Xinstall CPS结算系统打破传统营销桎梏,实现用户增长?

在互联网流量红利逐渐衰退的今天&#xff0c;App推广和运营面临着前所未有的挑战。如何快速搭建起满足用户需求的运营体系&#xff0c;成为了众多企业急待解决的问题。而在这个关键时刻&#xff0c;Xinstall CPS结算系统应运而生&#xff0c;以其独特的优势帮助企业解决了一系列…

iptables教程

1.iptables安装 1.1 iptables和iptables-service的关系 iptables 是基于内核的&#xff0c;和 iptables-services 没有关系&#xff0c;不用安装任何工具包就可以使用 iptable 命令添加的防火墙规则&#xff0c; 但是iptables添加的规则是临时的&#xff0c;基于内存的&…

SK海力士计划于2024年第四季度启动GDDR7大规模生产

SK海力士&#xff0c;作为HBM市场的领头羊&#xff0c;于6月13日宣布&#xff0c;公司目标于2024年第四季度开始其GDDR7芯片的大规模生产。 与此同时&#xff0c;美光科技在Computex展会上也宣布推出其GDDR7图形内存&#xff0c;目前正处于样品测试阶段。据AnandTech报道&#…

CRC计算单元

CRC计算单元 CRC是Cyclic Redundancy Check,循环冗余校验的缩写. 是一种检测数据错误的技术,主要用在数据通信和数据存储的方面. 但是这种技术只能检测到传输或存储的数据是否有误,没有将错误纠正的功能. 而CRC计算单元是一个独立的具备CRC计算功能的外设. AT32 MCU片上CRC计…