Skip to content

仪表盘

3D 仪表盘通过指针和刻度展示单个数值指标,适用于进度、速度、完成率等场景。

快速开始

最简单的仪表盘只需提供数值和名称:

vue
<template>
  <RayGauge :option="chartOption" />
</template>

<script setup>
import { ref } from 'vue';
import { RayGauge } from 'raychart';

const chartOption = ref({
  series: [
    {
      data: [{ value: 75, name: '完成率' }],
    },
  ],
});
</script>

智能默认值

自动配置指针、刻度线、颜色区间和光照,默认 0-100 范围的仪表盘。

核心配置

数据配置

属性类型默认值说明
series.dataArray<{value: number, name: string}>-仪表盘数据(必填)
series.minnumber0最小值
series.maxnumber100最大值

样式配置

属性类型默认值说明
series.radiusnumber10仪表盘半径
series.startAnglenumber225起始角度(度)
series.endAnglenumber-45结束角度(度)
series.splitNumbernumber10刻度数量
指针配置(可选)

通过 series.pointer 配置指针样式:

javascript
pointer: {
  length: 6,        // 指针长度(默认 radius * 0.65)
  width: 0.15,      // 指针宽度(默认 0.12)
  color: '#3498db'  // 指针颜色(默认 '#e74c3c')
}
刻度线配置(可选)

通过 series.axisTick 控制刻度线显隐(主刻度 + 次刻度样式为内置设计,不支持自定义):

javascript
axisTick: {
  show: false  // 隐藏刻度线(默认 true)
}
刻度标签配置(可选)

通过 series.axisLabel 配置刻度标签样式:

javascript
axisLabel: {
  show: true,          // 显示标签(默认 true)
  fontSize: 12,        // 字体大小(默认 11)
  color: '#888',       // 字体颜色(默认 '#555555')
  formatter: '{value}' // 标签格式化,{value} 会被替换为刻度值
}
轴线颜色区间(进阶)

通过 series.axisLine.lineStyle.color 配置分段颜色:

javascript
axisLine: {
  lineStyle: {
    color: [
      [0.33, '#91cc75'],  // 0-33% 绿色
      [0.66, '#fac858'],  // 33-66% 黄色
      [1, '#ee6666']      // 66-100% 红色
    ]
  }
}

数组格式为 [比例, 颜色],比例范围 0-1。

常见场景

基础仪表盘

展示单个进度值,使用默认配置:

vue
<template>
  <RayGauge :option="chartOption" />
</template>

<script setup>
import { ref } from 'vue';
import { RayGauge } from 'raychart';

const chartOption = ref({
  series: [
    {
      data: [{ value: 75, name: '完成率' }],
      detail: {
        show: true,
        formatter: '{value}%', // 显示百分比
      },
    },
  ],
});
</script>

半圆仪表盘

通过调整起始和结束角度实现半圆效果:

vue
<script setup>
const chartOption = ref({
  series: [
    {
      data: [{ value: 80, name: '速度' }],
      startAngle: 180, // 从 180 度开始
      endAngle: 0, // 到 0 度结束
      radius: 10,
      pointer: {
        length: 6,
        width: 0.15,
        color: '#3498db',
      },
    },
  ],
});
</script>

自定义颜色区间

根据数值区间设置不同颜色:

vue
<script setup>
const chartOption = ref({
  series: [
    {
      data: [{ value: 150, name: '速度' }],
      min: 0,
      max: 200,
      radius: 10,
      axisLine: {
        lineStyle: {
          color: [
            [0.25, '#7CFFB2'], // 0-50 绿色
            [0.5, '#58D9F9'], // 50-100 青色
            [0.75, '#FDDD60'], // 100-150 黄色
            [1, '#FF6E76'], // 150-200 红色
          ],
        },
      },
      detail: {
        show: true,
        formatter: '{value} km/h',
      },
    },
  ],
});
</script>

隐藏标题或数值

titledetail 都只支持 show 开关(标题仅在数据带 name 时显示):

vue
<script setup>
const chartOption = ref({
  series: [
    {
      data: [{ value: 65, name: '温度' }],
      title: { show: false },   // 隐藏标题
      detail: { show: false },  // 隐藏数值
    },
  ],
});
</script>

组件属性

属性类型默认值说明
optionRayChartOption-图表配置对象(必填)
widthstring | number'100%'图表宽度
heightstring | number'600px'图表高度

相关文档

基础学习

进阶主题

API 参考

其他图表类型

在线示例