广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue使用echarts定制特殊的仪表盘
  • 801
分享到

Vue使用echarts定制特殊的仪表盘

2024-04-02 19:04:59 801人浏览 泡泡鱼
摘要

本文实例为大家分享了Vue使用echarts定制特殊仪表盘的具体代码,供大家参考,具体内容如下 实现的效果:(初始化以及浏览器resize的时候数字和弧形条均为递增动画) html

本文实例为大家分享了Vue使用echarts定制特殊仪表盘的具体代码,供大家参考,具体内容如下

实现的效果:(初始化以及浏览器resize的时候数字和弧形条均为递增动画)

html部分:

<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div class="main-echarts-contianer"
     ref="main">
</div>

CSS部分:

.main-echarts-contianer {
  width: 480px;
  height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
}

js部分:

drawClockChart () {
  // 指定图表的配置项和数据
  let option = {
    'series': [
      {
        'name': '个人指标',
        'type': 'gauge',
        'radius': '65%',
        'startAngle': '240',
        'endAngle': '-60',
        // 图表的刻度分隔段数
        'splitNumber': 5,
        // 图表的轴线相关
        'axisLine': {
          'show': true,
          'lineStyle': {
            'color': [
              [
                0.9,
                new this.$echarts.graphic.LinearGradient(0, 0, 1, 0, [{
                  offset: 0,
                  color: '#FFD900'
                },
                {
                  offset: 1,
                  color: '#FF8000'
                }
                ])
              ],
              [1, '#56606E']
            ],
            'width': 15
          }
        },
        // 图表的刻度及样式
        'axisTick': {
          'lineStyle': {
            'color': '#0F1318',
            'width': 2
          },
          'length': 15,
          'splitNumber': 1
        },
        // 图表的刻度标签(20、40、60等等)
        'axisLabel': {
          'distance': -8,
          'textStyle': {
            'color': '#9E9E9E'
          }
        },
        // 图表的分割线
        'splitLine': {
          'show': false
        },
        // 图表的指针
        'pointer': {
          'show': false
        },
        // 图表的数据详情
        'detail': {
          'fORMatter': function (params) {
            return '{title|' + '总体得分}' + '\n' + '{score|' + params + '}'
          },
          'offsetCenter': [0, 0],
          'rich': {
            'title': {
              'fontSize': 12,
              'color': '#9E9E9E',
              'lineHeight': 30
            },
            'score': {
              'fontSize': 27,
              'color': '#fff'
            }
          }
        },
        // 图表的标题
        'title': {
          'offsetCenter': [0, '90%'],
          'color': '#fff',
          'fontSize': 14
        },
        'data': [{
          'name': '完成',
          'value': 31
        }]
      },
      {
        'name': '外层线',
        'type': 'gauge',
        'radius': '72%',
        'startAngle': '240',
        'endAngle': '-60',
        'center': ['50%', '50%'],
        'axisLine': {
          'lineStyle': {
            'width': 1,
            'color': [[1, '#56606E']]
          }
        },
        'splitLine': {
          'length': -6,
          'lineStyle': {
            'opacity': 0
          }
        },
        'axisLabel': {
          'show': false
        },
        'axisTick': {
          'splitNumber': 1,
          'lineStyle': {
            'opacity': 0
          }
        },
        'detail': {
          'show': false
        },
        'pointer': {
          'show': false
        }
      }
    ]
  }
  let tempVal = 0
  clearInterval(this.clockChartTimer)
  this.clockChartTimer = setInterval(() => {
    if (tempVal > this.myIvstrAbility) {
      clearInterval(this.clockChartTimer)
      // 最后转到最终数据的地方
      option.series[0].data[0].value = this.myIvstrAbility
      option.series[0].axisLine.lineStyle.color[0][0] = this.myIvstrAbility / 100
      // 使用刚指定的配置项和数据显示图表
      this.myChart.setOption(option)
      // 初始化渲染完成
      this.renderCompleted = true
      return
    }
    option.series[0].data[0].value = tempVal
    option.series[0].axisLine.lineStyle.color[0][0] = tempVal / 100
    // 使用刚指定的配置项和数据显示图表。
    this.myChart.setOption(option)
    tempVal++
  }, 20)
  // 此处监听浏览器的resize,重新渲染图表
  let that = this
  window.addEventListener("resize", function () {
    clearTimeout(that.resizeTimer)
    that.resizeTimer = setTimeout(() => {
      myChart.resize()
    }, 500)
  })
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Vue使用echarts定制特殊的仪表盘

本文链接: https://www.lsjlt.com/news/144033.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue使用echarts定制特殊的仪表盘
    本文实例为大家分享了Vue使用echarts定制特殊仪表盘的具体代码,供大家参考,具体内容如下 实现的效果:(初始化以及浏览器resize的时候数字和弧形条均为递增动画) HTML...
    99+
    2022-11-13
  • Vue中怎么使用echarts定制特殊的仪表盘
    这篇文章主要介绍了Vue中怎么使用echarts定制特殊的仪表盘的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中怎么使用echarts定制特殊的仪表盘文章都会有所收获,下面我们一起来看看吧。实现的效果:(...
    99+
    2023-06-29
  • 使用ECharts和Python接口绘制仪表盘的步骤
    使用ECharts和Python接口绘制仪表盘的步骤,需要具体代码示例摘要:ECharts是一款优秀的数据可视化工具,通过Python接口可以方便地进行数据处理和图形绘制。本文将介绍使用ECharts和Python接口绘制仪表盘的具体步骤,...
    99+
    2023-12-18
    仪表盘 Python echarts
  • vue使用highcharts自定义仪表盘图表
    使用highchart图表框架实现一个自定义的类似下图的图表,供大家参考,具体内容如下 1. 原理 实际上就是4个饼图叠起来(可以这么理解),中间一个完整的圆和三个大小不一的圆圈 ...
    99+
    2022-11-13
  • java如何使用正则表达式限制特殊字符的个数
    目录使用正则表达式限制特殊字符的个数java判断限定字符的正则使用正则表达式限制特殊字符的个数 package com.l.dubbo.service; import jav...
    99+
    2022-11-12
  • java怎么使用正则表达式限制特殊字符的个数
    这篇文章给大家分享的是有关java怎么使用正则表达式限制特殊字符的个数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用正则表达式限制特殊字符的个数package com.l.dubbo.service...
    99+
    2023-06-21
  • 如何使用MySQL创建一个可定制的会计系统表结构以满足不同行业和企业的特定需求?
    如何使用MySQL创建一个可定制的会计系统表结构以满足不同行业和企业的特定需求?引言:在现代商业环境中,会计系统起到了至关重要的作用,帮助企业记录和分析财务数据。然而,不同行业和企业对于会计系统的需求各不相同。为了满足不同企业的特定需求,我...
    99+
    2023-10-31
    MySQL 定制化 会计系统
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作