echarts实现渐变折线图并添加点击事件

这篇具有很好参考价值的文章主要介绍了echarts实现渐变折线图并添加点击事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

echarts实现渐变折线图并添加点击事件,大屏,echarts,vue项目中常用操作,echarts,vue.js,javascript

 

 

 折线图点击事件代码:

 let myChart = this.$echarts.init(document.getElementById('trendBoxECharts'))

  myChart.getZr().on('click', params => {
          console.log(params)
          let pointInPixel = [params.offsetX, params.offsetY]
          if (myChart.containPixel('grid', pointInPixel)) {
            //点击第几个柱子
            let pointInGrid = myChart.convertFromPixel({ seriesIndex: 0 }, pointInPixel)
            // 也可以通过params.offsetY 来判断鼠标点击的位置是否是图表展示区里面的位置
            // 也可以通过name[xIndex] != undefined,name是x轴的坐标名称来判断是否还是点击的图表里面的内容
            // x轴数据的索引
            let xIndex = pointInGrid[0]
            console.log('当前点击的索引', xIndex)
          }
        })

 完整代码如下:文章来源地址https://www.toymoban.com/news/detail-599144.html

<template>
  <div class="trendBox">
    <div class="header-title">
      故障趋势

      <div class="month-picker">
        <el-date-picker
          @change="getMonth"
          v-model="monthData"
          value-format="yyyy-MM"
          type="month"
          placeholder="选择日期时间">
        </el-date-picker>
      </div>
    </div>

    <div id="trendBoxECharts"></div>
  </div>
</template>

<script>
  import { getLedgersWarnsList } from '@/api/fault/statisticAnalysis'

  export default {
    name: 'trendBox',
    components: {},
    props: {},
    data() {
      return {
        monthData: null,
        xData: [], // ['12-26', '12-27', '12-28', '12-29', '12-30', '12-31', '01-01', '01-02', '01-03', '01-04', '01-05', '01-06', '01-07', '01-08', '01-09']
        yData: [] // [0, 10, 2, 4, 4, 7, 0, 0, 0, 3, 0, 9, 6, 0, 0]
      }
    },
    methods: {
      getMonth(data) {
        console.log(data)
      },

      getTrendBoxECharts() {
        getLedgersWarnsList().then(res => {
          this.xData = res.data.date
          this.yData = res.data.value
        })
      },

      initTrendBoxECharts() {
        let option = {
          // title: {
          //   text: '这是标题',
          //   textStyle: { color: '#666', fontSize: 14, fontWeight: 'normal' },
          //   padding: [5, 0, 0, 0],
          // },
          legend: {
            show: false
          },
          grid: {
            left: 0,
            top: 10,
            bottom: 0,
            right: 0,
            containLabel: true
          },
          xAxis: {
            type: 'category',
            data: this.xData,
            axisLine: { lineStyle: { color: '#ccc' } },
            axisTick: { length: 3 },
            axisLabel: { color: '#999' }
          },
          yAxis: {
            type: 'value',
            axisLine: { show: true, lineStyle: { color: '#ccc' } },
            axisLabel: { color: '#999' },
            splitLine: { show: false }
          },
          tooltip: {
            trigger: 'axis',
            padding: [12, 17, 20, 23],
            textStyle: { color: '#424242' },
            renderMode: 'html',
            className: 'tooltip'
          },
          series: [
            {
              name: '故障',
              type: 'line',
              data: this.yData,
              smooth: true, // 平滑曲线
              showSymbol: false,
              itemStyle: { color: '#126EFC' },
              lineStyle: { width: 3, color: '#126EFC' },
              areaStyle: { color: 'rgba(0, 110, 254, 0.1)' }
            }

          ]
        }

        let myChart = this.$echarts.init(document.getElementById('trendBoxECharts'))
        myChart.setOption(option)
        myChart.getZr().on('click', params => {
          console.log(params)
          let pointInPixel = [params.offsetX, params.offsetY]
          if (myChart.containPixel('grid', pointInPixel)) {
            //点击第几个柱子
            let pointInGrid = myChart.convertFromPixel({ seriesIndex: 0 }, pointInPixel)
            // 也可以通过params.offsetY 来判断鼠标点击的位置是否是图表展示区里面的位置
            // 也可以通过name[xIndex] != undefined,name是x轴的坐标名称来判断是否还是点击的图表里面的内容
            // x轴数据的索引
            let xIndex = pointInGrid[0]
            console.log('当前点击的索引', xIndex)
          }
        })

        // 随着屏幕大小调节图表
        window.addEventListener('resize', () => {
          myChart.resize()
        })
      }
    },
    created() {
      this.getTrendBoxECharts()
    },
    mounted() {
      setTimeout(() => {
        this.initTrendBoxECharts()
      }, 500)
    }
  }
</script>

<style lang="scss" scoped>
  .trendBox {
    width: 100%;
    height: 100%;

    .header-title {
      height: 80px;
      line-height: 80px;
      font-size: 20px;
      font-weight: bold;
      color: #333333;
      margin: 0 20px;
      letter-spacing: 1px;
      display: flex;
      justify-content: space-between;

      .month-picker {
      }
    }

    #trendBoxECharts {
      width: 100%;
      height: calc(100% - 80px);
      padding: 0 20px 20px;
    }
  }
</style>

到了这里,关于echarts实现渐变折线图并添加点击事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue大屏开发系列—使用echart开发省市地图数据,并点击省获取市地图数据

    1. 本文在基础上进行改进,后端使用若依后端 IofTV-Screen: 🔥一个基于 vue、datav、Echart 框架的物联网可视化(大屏展示)模板,提供数据动态刷新渲染、屏幕适应、数据滚动配置,内部图表自由替换、Mixins注入等功能,持续更新.... - Gitee.com 2.效果:将系统大屏显示地图 3. 使

    2024年02月04日
    浏览(39)
  • vue-echarts饼图/柱状图点击事件

    在实际的项目开发中,我们通常会用到Echarts来对数据进行展示,有时候需要用到Echarts的点击事件,增加系统的交互性,一般是点击Echarts图像的具体项来跳转路由并携带参数,当然也可以根据具体需求来做其他的业务逻辑。下面就Echarts图表的点击事件进行实现,文章省略了

    2024年02月06日
    浏览(49)
  • Vue 之 vue-seamless-scroll 实现简单自动无缝滚动,且添加对应点击事件的简单整理

    目录 Vue 之 vue-seamless-scroll 实现简单自动无缝滚动,且添加对应点击事件的简单整理 一、简单介绍 二、安装和使用 三、效果图 四、vue-seamless-scroll 点击事件实现原理  五、简单实现  六、关键代码 Vue 开发的一些知识整理,方便后期遇到类似的问题,能够及时查阅使用。 本

    2024年02月09日
    浏览(39)
  • 在vue中使用echarts以及简单关系图的点击事件

    在Vue项目中打开终端执行命令: 下载后在package.json文件中可以看到下载的Echarts版本: 在需要使用Echarts图表的页面中导入: 如果多个地方使用的话可以通过全局引入: 在需要用到echarts的地方设置一个有宽高的div盒子 定义echarts关系图的数据 在methods中定义实例化echarts对象的

    2024年02月08日
    浏览(38)
  • 【Echarts图例点击事件】自定义Echarts图例legend点击事件(已解决)

    **【写在前面】**这下我又不得不说了,还是客户现场使用时想查询一周的数据,查询时候发现页面居然要等20多秒,这是个人都得崩溃吧,然后就开始排查这块业务代码模块,主要体现在两个方面: A.接口请求时间过长(约8秒),有优化的空间 B.前端一次性调用了四次接口,分

    2023年04月08日
    浏览(83)
  • echarts地图,选中颜色设置;取消鼠标默认事件,点击选中地图实现颜色变化,选择高亮,选中高亮,取消选中(再次点击取消选中),以下面地图为例

    echarts地图,选中颜色设置;取消鼠标默认事件,点击选中地图实现颜色变化,选择高亮,选中高亮,取消选中(再次点击取消选中),下面以四川部分地图为例 针对选择模式,非点击(click),选择事件,可以获取相关地图数据,使用echarts地图的事件方法 mapselectchanged

    2024年02月11日
    浏览(49)
  • Vue2+Echarts+SpringBoot+Websocket+Scheduled实现大屏图表数据实时展示

    近期在学习websocket的相关技术,用于做前后端的数据实时交互,结合网上资料和个人理解,整理了一个小白入门案例,不喜勿喷!!!!! WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议) 它实现了浏览器与服务器全双工通信,能更好的节省服务器资源

    2024年02月20日
    浏览(55)
  • echarts用法之点击事件

    echarts用法之点击事件 - 知乎 echarts可以通过点击事件获取每项的值:myChart.on(\\\'click\\\', function (param) { } // myChart为自定义变量:var myChart = echarts.init(document.getElementById(\\\'echartBox\\\')); 可以通过param… https://zhuanlan.zhihu.com/p/588249196

    2024年02月08日
    浏览(62)
  • echarts 点击事件

    饼图点击事件会触发两次 可以通过点击事件 查询当前饼图是裂开还是合上的状态 a.event.target.parent._children是饼图的对象数组 数组中selected为true代表当前为选中状态,反之未选中 echarts的legend事件禁用以及legend显示百分比 自定义fomatter图标消失解决

    2024年02月11日
    浏览(37)
  • 使用VUE实现点击事件

    1,使用ps对图片进行切片  2,切片好的图片保存为web所用格式  保存到桌面后进行使用 1.将准备好的图片拖进web文件中进行使用 2.代码部分 a.样式部分(根据图片进行设计大小格式,排序和整体样式.) b.div部分 c.组件部分

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包