echart 仪表盘实现指针的渐变色及添加图片

需求:
在仪表盘中设置指针为渐变色,并在仪表盘中间添加图片。
实现重点:
1、仪表盘指针渐变色的实现
渐变色通过设置pointer的itemStyle属性内的color实现,重点是echart版本,这个原本使用4.8.0的版本不起作用,升级到5.0.0就可以了,另外需要指定渐变的类型为linear

2、仪表盘图片添加实现通过设置anchor属性实现,支持base64,矢量图,链接,本地图片等都可以(下面完整例子代码使用了链接及base64格式的图片)。
本地图片引入,使用require进行引入后拼接,示例:

let pointerIcon = require(`@/assets/images/plane-icon.png`);
let pointerUrl = `image://${
     
     pointerIcon}`;
anchor:{
   
   
	icon: pointerUrl
}

图片转base64格式的链接:
https://www.sojson.com/image2base64.html

效果如图所示:
在这里插入图片描述

完整代码如下:

import * as echarts from 'echarts';
var app = {
   
   };
var chartDom = document.getElementById('main');
var myChart = echarts.init(chartDom);
var option;

// 指针渐变色
let gradientColor = {
   
   
  type: 'linear',
  x: 0,
  y: 0,
  x2: 0,
  y2: 1,
  colorStops: [
    {
   
   
      offset: 0,
      color: 'red'
    },
    {
   
   
      offset: 0.5,
      color: 'yellow'
    },
    {
   
   
      offset: 1,
      color: 'blue'
    }
  ]
};
option = {
   
   
  series: [
    {
   
   
      type: 'gauge',
      min: 0,
      max: 100,
      splitNumber: 10,
      radius: '80%',
      axisLine: {
   
   
        lineStyle: {
   
   
          color: [[1, '#f00']],
          width: 3
        }
      },
      // 数值分隔线
      splitLine: {
   
   
        distance: 0,
        length: 20,
        lineStyle: {
   
   
          color: '#f00'
        }
      },
      // 坐标轴刻度
      axisTick: {
   
   
        distance: 0,
        length: 10,
        lineStyle: {
   
   
          color: '#f00'
        }
      },
      // 刻度标签
      axisLabel: {
   
   
        distance: 5,
        color: '#f00',
        
### 配置ECharts仪表盘的方法 ECharts 是一个强大的 JavaScript 数据可视化库,提供了丰富的图表类型和高度自定义的能力。对于仪表盘的配置,可以通过调整多个属性来实现美观且功能性强的效果。 #### 基本结构 仪表盘属于 ECharts 中的 `gauge` 图表类型。其基本配置项包括但不限于以下几个部分: 1. **series.type**: 设置为 `"gauge"` 表示这是一个仪表盘类型的图表[^1]。 2. **name**: 可以为该系列命名以便于后续操作,例如在 tooltip 或 legend 中使用[^4]。 3. **min 和 max**: 定义仪表盘的最小值和最大值范围。 4. **detail**: 控制仪表盘指针指向的具体数值以及显示方式。 以下是基础代码框架: ```javascript option = { series: [{ type: 'gauge', name: '速度', // 系列名称 min: 0, max: 220, detail: { valueAnimation: true, formatter: '{value} km/h' } }] }; ``` #### 自定义样式 为了使仪表盘更加美观,可以进一步优化以下参数: - **axisLine**: 调整轴线的颜色、宽度以及其他视觉效果[^5]。如果希望完全隐藏背景线条,则需设置 `opacity: 0` 并保持 `show: false` 不生效的情况下的透明处理。 - **splitLine**: 修改分隔线颜色与长度等细节。 - **pointer**: 更改指针形状及其动态变化特性。 下面展示了一个带有渐变色填充效果的例子: ```javascript let option = { backgroundColor:'#fff', title : { text:'车速表', subtext:'', textStyle:{ fontSize:16, fontWeight:"bolder", color:"#333" }, top:20, left:'center' }, series:[{ type:'gauge', radius:'90%', axisLine:{lineStyle:{width:8,color:[[0,'#f7bc0a'],[1,'#ff5c5d']]}}, splitNumber:10, pointer:{length:'80%',color:'auto'}, axisTick:{distance:-15,length:8,lineStyle:{color:'#fff',width:2}}, splitLine:{distance:-20,length:15,lineStyle:{color:'#fff',width:4}}, axisLabel:{fontSize:12,distance:-35,textStyle:{color:'#fff'}}, anchor:{show:true,size:15,itemStyle:{borderWidth:8,borderColor:'#fff'}}, title:{offsetCenter:['0','-40%']}, detail:{formatter:'{value}km/h',offsetCenter:['0','10%'],style:{color:'#fff'}} }] } ``` 此段脚本实现了从黄色到红色过渡的渐变轴线,并增强了其他组件如标签字体大小、位置偏移量等方面的设定。 #### 进阶技巧 当追求更精致的表现形式时,还可以探索更多高级选项比如动画效果控制(`animation`, `animationDuration`)或者事件监听机制等等。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值