Radar 雷达图
雷达图是一种使用多边形网状表示数据不同特征大小的图表,用于比较不同特性。
平台差异说明
| App(vue) | App(nvue) | H5 | 小程序 |
|---|---|---|---|
| √ | √ | √ | √ |
基础雷达图
通过设置 series 属性,可以生成基础雷达图。
vue
<template>
<view>
<ly-charts-radar
width="720rpx"
height="250px"
:option="chartOption"
@click="handleChartClick"
></ly-charts-radar>
</view>
</template>
<script setup>
import { ref } from 'vue'
const chartOption = ref({
title: {
text: '基础雷达图'
},
// legend: {
// data: ['部门表现'],
// left: 'center',
// top: 0
// },
radar: {
indicator: [
{ name: '攻击', max: 100 },
{ name: '防御', max: 100 },
{ name: '速度', max: 100 },
{ name: '力量', max: 100 },
{ name: '耐力', max: 100 },
{ name: '敏捷', max: 100 }
],
axisLine: { show: true },
name: { show: true }
},
series: [{
name: '角色能力',
type: 'radar',
data: [82, 93, 89, 95, 75, 80]
}]
})
const handleChartClick = (e) => {
console.log('雷达图点击事件', e)
}
</script>填充雷达图
通过设置 series.areaStyle 属性,可以为雷达图添加填充效果。
vue
<template>
<view>
<ly-charts-radar
width="720rpx"
height="250px"
:option="chartOption"
@click="handleChartClick"
></ly-charts-radar>
</view>
</template>
<script setup>
import { ref } from 'vue'
const chartOption = ref({
title: {
text: '填充雷达图'
},
legend: {
data: ['部门表现', '预期表现'],
left: 'center'
},
radar: {
indicator: [
{ name: '销售', max: 100 },
{ name: '管理', max: 100 },
{ name: '技术', max: 100 },
{ name: '市场', max: 100 },
{ name: '财务', max: 100 }
],
axisLine: { show: true },
name: { show: true }
},
series: [{
name: '部门表现',
type: 'radar',
areaStyle: {
color: 'rgba(84, 112, 198, 0.5)'
},
data: [90, 80, 95, 70, 85]
}, {
name: '预期表现',
type: 'radar',
areaStyle: {
// color: 'rgba(145, 204, 117, 0.5)'
},
data: [50, 60, 65, 30, 46]
}]
})
const handleChartClick = (e) => {
console.log('雷达图点击事件', e)
}
</script>自定义网格背景色
通过设置 radar.splitArea.areaStyle.color 属性,可以自定义网格背景色。
vue
<template>
<view>
<ly-charts-radar
width="720rpx"
height="230px"
:option="chartOption"
@click="handleChartClick"
></ly-charts-radar>
</view>
</template>
<script setup>
import { ref } from 'vue'
const chartOption = ref({
title: {
text: '自定义网格背景色'
},
radar: {
indicator: [
{ name: '销售', max: 100 },
{ name: '管理', max: 100 },
{ name: '技术', max: 100 },
{ name: '市场', max: 100 },
{ name: '财务', max: 100 }
],
// 配置splitArea来自定义网格背景色
splitArea: {
areaStyle: {
// 自定义颜色数组,交替使用不同颜色
color: ['rgba(255, 173, 177, 0.3)', 'rgba(179, 229, 252, 0.3)']
}
},
axisLine: { show: true },
name: { show: true }
},
series: [{
name: '部门表现',
type: 'radar',
areaStyle: {
color: 'rgba(84, 112, 198, 0.6)'
},
data: [90, 80, 95, 70, 85]
}]
})
const handleChartClick = (e) => {
console.log('雷达图点击事件', e)
}
</script>圆形雷达图
通过设置 radar.shape 为 'circle',可以绘制圆形雷达图。
vue
<template>
<view>
<ly-charts-radar
width="720rpx"
height="230px"
:option="chartOption"
@click="handleChartClick"
></ly-charts-radar>
</view>
</template>
<script setup>
import { ref } from 'vue'
const chartOption = ref({
title: {
text: '圆形雷达图'
},
radar: {
indicator: [
{ name: '销售', max: 100 },
{ name: '管理', max: 100 },
{ name: '技术', max: 100 },
{ name: '市场', max: 100 },
{ name: '财务', max: 100 }
],
// 设置为圆形雷达图
shape: 'circle',
splitNumber: 4,
splitArea: {
areaStyle: {
color: ['rgba(250, 250, 250, 0.2)', 'rgba(210, 219, 238, 0.2)']
}
},
axisLine: { show: true },
name: { show: true }
},
series: [{
name: '部门表现',
type: 'radar',
areaStyle: {
color: 'rgba(84, 112, 198, 0.3)'
},
data: [90, 80, 95, 70, 85]
}]
})
const handleChartClick = (e) => {
console.log('雷达图点击事件', e)
}
</script>Props
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|---|---|---|---|---|
| option | 图表配置项,格式与 ECharts 相似 | Object | - | - |
| width | 图表容器宽度 | String | Number | 100% | - |
| height | 图表容器高度 | String | Number | 300 | - |
| theme | 图表主题配置 | Object | - | - |
| chartId | 图表实例ID(多图表场景) | String | radarChart | - |
Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| click | 点击图表时触发 | event对象 |
Option 属性
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| title | 标题配置 | Object | - |
| title.text | 标题文本 | String | - |
| title.subtext | 副标题文本 | String | - |
| title.show | 是否显示标题 | Boolean | true |
| legend | 图例配置 | Object | - |
| legend.data | 图例数据 | Array | - |
| legend.show | 是否显示图例 | Boolean | true |
| legend.left | 图例水平位置 | String/Number | center |
| legend.top | 图例垂直位置 | String/Number | - |
| radar | 雷达图配置 | Object | - |
| radar.indicator | 指示器配置 | Array | - |
| radar.indicator[].name | 指示器名称 | String | - |
| radar.indicator[].max | 指示器最大值 | Number | 100 |
| radar.splitNumber | 雷达图圈数 | Number | 5 |
| radar.shape | 雷达图形状 | String | polygon |
| radar.radius | 雷达图半径 | Number/String/Array | - |
| radar.splitArea | 分割区域配置 | Object | - |
| radar.splitArea.areaStyle | 分割区域样式 | Object | - |
| radar.splitArea.areaStyle.color | 分割区域颜色 | Array | - |
| radar.axisLine | 轴线配置 | Object | - |
| radar.axisLine.show | 是否显示轴线 | Boolean | true |
| radar.name | 指示器名称配置 | Object | - |
| radar.name.show | 是否显示指示器名称 | Boolean | true |
| series | 系列列表 | Array | - |
| series[].type | 系列类型 | String | radar |
| series[].name | 系列名称 | String | - |
| series[].data | 系列数据 | Array | - |
| series[].color | 系列颜色 | String | - |
| series[].areaStyle | 填充区域样式 | Object | - |
| series[].areaStyle.color | 填充区域颜色 | String | - |
方法
| 方法名 | 说明 | 参数 |
|---|---|---|
| updateData | 更新图表数据 | data |
| getChartInstance | 获取图表实例 | - |