当前位置:首页 > VUE

如何实现vue雷达图

2026-02-24 23:08:22VUE

使用 ECharts 实现 Vue 雷达图

安装 ECharts 依赖

npm install echarts --save

在 Vue 组件中引入 ECharts

import * as echarts from 'echarts'

创建雷达图容器

<template>
  <div id="radarChart" style="width: 600px; height: 400px;"></div>
</template>

初始化雷达图

如何实现vue雷达图

mounted() {
  this.initRadarChart()
},
methods: {
  initRadarChart() {
    const chart = echarts.init(document.getElementById('radarChart'))

    const option = {
      title: {
        text: '能力雷达图'
      },
      radar: {
        indicator: [
          { name: '技术', max: 100 },
          { name: '沟通', max: 100 },
          { name: '领导力', max: 100 },
          { name: '创新', max: 100 },
          { name: '执行力', max: 100 }
        ]
      },
      series: [{
        type: 'radar',
        data: [
          {
            value: [90, 70, 80, 85, 75],
            name: '能力评估'
          }
        ]
      }]
    }

    chart.setOption(option)
  }
}

使用 Vue-ECharts 封装组件

安装 vue-echarts

npm install echarts vue-echarts

创建可复用的雷达图组件

如何实现vue雷达图

<template>
  <v-chart :option="option" autoresize />
</template>

<script>
import { use } from 'echarts/core'
import { RadarChart } from 'echarts/charts'
import {
  TitleComponent,
  TooltipComponent,
  LegendComponent,
  RadarComponent
} from 'echarts/components'
import { CanvasRenderer } from 'echarts/renderers'
import VChart from 'vue-echarts'

use([
  RadarChart,
  TitleComponent,
  TooltipComponent,
  LegendComponent,
  RadarComponent,
  CanvasRenderer
])

export default {
  components: { VChart },
  props: {
    indicators: Array,
    seriesData: Array
  },
  computed: {
    option() {
      return {
        title: { text: '技能评估' },
        tooltip: {},
        legend: { data: ['当前能力'] },
        radar: { indicator: this.indicators },
        series: [{
          name: '能力',
          type: 'radar',
          data: this.seriesData
        }]
      }
    }
  }
}
</script>

自定义雷达图样式

修改雷达图外观

option: {
  radar: {
    shape: 'circle',
    splitNumber: 5,
    radius: '70%',
    axisName: {
      color: '#333',
      fontSize: 14
    },
    splitArea: {
      areaStyle: {
        color: ['rgba(114, 172, 209, 0.2)']
      }
    },
    axisLine: {
      lineStyle: {
        color: 'rgba(114, 172, 209, 0.8)'
      }
    }
  },
  series: [{
    itemStyle: {
      color: '#4bacc6'
    },
    lineStyle: {
      width: 2,
      color: '#4bacc6'
    },
    areaStyle: {
      color: 'rgba(75, 172, 198, 0.4)'
    }
  }]
}

响应式雷达图实现

添加窗口大小变化监听

mounted() {
  this.initRadarChart()
  window.addEventListener('resize', this.handleResize)
},
beforeDestroy() {
  window.removeEventListener('resize', this.handleResize)
},
methods: {
  handleResize() {
    this.chart.resize()
  }
}

使用 computed 属性动态生成数据

computed: {
  radarData() {
    return this.$store.getters.skillData.map(item => {
      return {
        name: item.skillName,
        max: 100,
        color: this.getColor(item.level)
      }
    })
  }
}

标签: 如何实现vue
分享给朋友:

相关文章

实现 vue ssr

实现 vue ssr

Vue SSR 实现方法 Vue SSR(Server-Side Rendering)通过服务器端渲染 Vue 应用,提升首屏加载速度和 SEO 友好性。以下是核心实现方法: 基础配置 安装必要依赖…

computed vue 实现

computed vue 实现

computed 在 Vue 中的基本用法 Vue 的 computed 属性用于声明依赖于其他数据的计算属性。当依赖的数据变化时,计算属性会自动重新计算并缓存结果。 export defau…

vue实现机制

vue实现机制

Vue 实现机制的核心原理 Vue.js 的核心实现机制主要基于响应式系统、虚拟 DOM 和组件化设计。以下是关键实现细节: 响应式系统 Vue 通过 Object.defineProperty(V…

vue实现Siri

vue实现Siri

Vue 实现 Siri 风格语音交互 实现类似 Siri 的语音交互功能需要结合语音识别、语音合成和前端交互逻辑。Vue 作为前端框架,可以很好地管理这些功能的交互状态。 语音识别集成 使用 We…

vue实现选择

vue实现选择

Vue 实现选择功能的方法 在 Vue 中实现选择功能可以通过多种方式完成,以下介绍几种常见的实现方法。 使用 v-model 绑定单选 通过 v-model 可以轻松实现单选功能。以下是一个简单…

vue实现答辩

vue实现答辩

Vue 实现答辩系统的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装 Vue Router 管理路由,Pinia/Vuex 进行状态管理。配置 ESLint 和 Pre…