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 | 获取图表实例 | - |