qiguai54 2023-07-23 12:54 采纳率: 48%
浏览 28

vue2 echarts 折线图怎么点击这条虚线,触发点击事件

vue2 echarts 折线图怎么点击这条虚线,触发点击事件
vue2 echarts 折线图怎么点击这条虚线,触发点击事件

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-23 14:14
    关注
    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7738701
    • 你也可以参考下这篇文章:【Echarts系列】Vue2项目如何引入echarts
    • 除此之外, 这篇博客: Vue 使用 echarts 散点图在区域内标点中的 Vue 使用 echarts 散点图在区域内标点 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 首先是因为项目,需要在一个区域内根据坐标标出在标准大小的玻璃中标出检测出含有缺陷的坐标点。
      假如说,一块玻璃的大小是标准的 100200 mm的大小,这个是定死的,不会变,每块都这么大。
      那么就直接在界面上创建一个100
      200px的div,表示是这块玻璃。
      规定,这块玻璃的中心点是原点(0,0),向右向上是正,向左向下是负。
      所以就是这个样子
      在这里插入图片描述
      所以说我就想用 echarts 直接在界面上渲染。

      html

      首先在界面上绘制一个div来放置echarts。其中这个被我抽离出来做成了组件,组件大小已经规定好了,就是200*100的标准大小。公司要求不能拉伸,不然给人的感觉点就是错位的,如果太大,可以按比例缩小或放大。

      <template>
        <div style="width: 100%;height: 100%;border: 1px solid #dee1e6;background-color: #f1f3f4;">
          <div id="map" style="width: 100%;height:100%;"></div>
        </div>
      </template>
      

      然后是给散点图画坐标,其实这个地方就很烦。
      echarts 的坐标和公司的有出入。
      在这里插入图片描述
      首先设置x轴 和 y轴

      		 // 循环界面
              let xLabel = []
              let yLabel = []
              for (let i = -49; i <= 50; i++) {
                xLabel.push(i)
              }
              for (let y = -99; y <= 100; y++) {
                yLabel.push(y)
              }
      

      然后是绘制点的集合

      后台返回来的点的数据结构大体是这个样子的。
      在这里插入图片描述

      	    series.push({
                symbolSize: 10,
                color: 'red',
                name: this.showData[2],
                // data下面是计算出的,就是楞加
                data: [[this.showData[0] / 1000 + 49, this.showData[1] / 1000 + 99]],
                type: 'scatter',
              })
      

      坐标需要转换,除1000,不解释了,就这样规定的。

      然后就可以绘制散点图了。

             let option = {
                grid: {   // 因为就是个图片,模拟玻璃,就把绘制的边距设置为0,绘制区域充满整个屏幕
                  top: 0,
                  left: 0,
                  right: 0,
                  bottom: 0,
                },
                xAxis: { 
                  show: false,
                  data: xLabel
                },
                yAxis: {
                  show: false,
                  data: yLabel
                },
                series,
              }
              this.charts = echarts.init(document.getElementById('map'))
              this.charts.setOption(option, true)
              // 下面这个点击事件是当我点击图上的点的是后触发的点击事件
              this.charts.on('click', (params) => {
                if (params.componentSubType === 'scatter') {
                  console.log('pointClick ----> ', params.seriesName)
                }
              })
      

      可以了。

      大体效果就这个样子。
      在这里插入图片描述

    • 您还可以看一下 jason老师的vue通用后台管理课程中的 echarts表格折线图实现小节, 巩固相关知识点
    评论

报告相同问题?

问题事件

  • 创建了问题 7月23日

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?