e-charts 雷达图点击事件

本文围绕e-charts雷达图展开,重点介绍其点击效果的实现。包含html部分代码示例、js部分内容,最后展示了实现效果,为相关开发提供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

e-charts 雷达图



前言

提示:雷达图的点击事件


提示:以下是本篇文章正文内容,下面案例可供参考

一、雷达图点击效果

1.html 部分

代码如下(示例):

  <ve-radar class="customer-rating" width="100%" height="240px" :data="chartData" :settings='chartSettings'
                :extend='chartExtend' :events="chartEvents"></ve-radar>

2.js部分

		indicator : [
		    {
		        name: '规范度', max: 100, color: 'rgb(64,145,176)', axisLabel: {
		            show: true,
		            margin: -10,
		            fontSize: 10,
		            align: 'left'
		        }
		    },
		    {name: '诚信度', max: 100, axisLabel: {show: false}},
		    {name: '成长度', max: 100, axisLabel: {show: false}},
		    {name: '配合度', max: 100, axisLabel: {show: false}},
		    {name: '预警度', max: 100, axisLabel: {show: false}}
		],
		 list:[
                {type:'规范度',rank:'A',score:78},
                {type:'诚信度',rank:'A',score:48},
                {type:'成长度',rank:'B',score:78},
                {type:'配合度',rank:'A',score:67},
                {type:'预警度',rank:'C',score:89}
            ],
		chartExtend: {
                color: ['rgba(121, 164, 222, 1)'],
                // 雷达图最大值配置
                radar: {
                    shape: 'polygon',
                    // axisLabel设置轴线上刻度值  color设置外部标签颜色
                    indicator:[
					    {
					        name: '规范度', max: 100, color: 'rgb(64,145,176)', axisLabel: {
					            show: true,
					            margin: -10,
					            fontSize: 10,
					            align: 'left'
					        }
					    },
					    {name: '诚信度', max: 100, axisLabel: {show: false}},
					    {name: '成长度', max: 100, axisLabel: {show: false}},
					    {name: '配合度', max: 100, axisLabel: {show: false}},
					    {name: '预警度', max: 100, axisLabel: {show: false}}
					],
                    name: {
                    // name  formatter外部标签自定义文字
                        formatter: (name) => {
                            const temp = this.list.filter(item => {
                                return item.type === name;
                            });
                            return `${name}:${temp[0].rank}`;
                        }
                    },
                    //  添加triggerEvent: true才能触发点击事件
                    triggerEvent: true
                },
                // legend不展示
                legend: {
                    show: false
                },
                tooltip: {
                    trigger: 'item',
                    formatter: (params) => {
                        return this.indicator[0].name;
                    }
                }
   			 },
            chartSettings: {
                // 线颜色配置
                lineStyle: {
                    color: 'rgba(121, 164, 222, 1)'
                },
                // 区域颜色配置
                areaStyle: {
                    color: 'rgba(121, 164, 222, 1)'
                }
            },
            chartEvents: { 
            //  点击事件触发
		            click: (e) => {
		                if (e.event.topTarget.__dimIdx !== undefined) {
		                //  点击的是图中拐点   e.event.topTarget.__dimIdx代表当前点击的是第几项
		                    const index = e.event.topTarget.__dimIdx;
		                    this.chartExtend = {
		                        ...this.chartExtend, tooltip: {
		                            trigger: 'item',
		                            formatter: (params) => {
		                                return `${this.indicator[index].name}<br/>评分:${this.chartData.rows[0][this.indicator[index].name]}`;
		                            }
		                        }
		                    };
		                } else {
		                  //  点击的是图中外部标签文字   通过 e.name可直接拿到标签文字
		                    const extend = {...this.chartExtend};
		                    const temp = this.list.filter(item => {
		                        return `${item.type}:${item.rank}` === e.name;
		                    });
		
		                    //  this.handleClickChart(temp[0].type);
							  extend.radar.indicator.forEach((item) => {
		                        if (`${item.name}:${temp[0].rank}` === e.name) {
		                            item.color = 'rgb(64,145,176)';
		                        } else {
		                            item.color = 'rgb(202,202,202)';
		                        }
		                    });
		                    this.chartExtend = extend;
		                }
		            }},
            chartData:
          {
              columns: ['规范度', '诚信度', '成长度', '配合度', '预警度'],
              rows: [
              {'规范度': 100, '诚信度': 93, '成长度': 32, '配合度': 48, '预警度': 60}
              ]
          }

3.实现效果

1、点击外部标签文字高亮显示 2、点击拐点自定义提示内容

在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了e-charts 雷达图的使用。
好的,下面是一个简单的 ECharts 雷达的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ECharts 雷达示例</title> <!-- 引入 ECharts 文件 --> <script src="https://cdn.jsdelivr.net/npm/echarts@5.1.2/dist/echarts.min.js"></script> </head> <body> <!--ECharts 准备一个具备大小(宽高)的 DOM --> <div id="chart" style="width: 600px; height: 400px;"></div> <script> // 基于准备好的 DOM,初始化 ECharts 实例 var myChart = echarts.init(document.getElementById('chart')); // 配置项 var option = { tooltip: { // 鼠标悬浮时显示的提示框 show: true }, radar: { // 雷达配置 indicator: [ // 雷达每个维度的指标名称和最大值 { name: '销售', max: 100 }, { name: '服务', max: 100 }, { name: '品质', max: 100 }, { name: '价格', max: 100 }, { name: '口碑', max: 100 }, { name: '忠诚度', max: 100 } ], shape: 'circle', // 圆形雷达 splitNumber: 5, // 分割线数量 name: { // 指示器名称的配置项 textStyle: { color: '#333' } }, splitLine: { // 分隔线的样式 lineStyle: { color: [ '#ddd', '#ddd', '#ddd', '#ddd', '#ddd' ].reverse() } }, splitArea: { // 分隔区域的样式 show: false }, axisLine: { // 坐标轴轴线样式 lineStyle: { color: '#ddd' } } }, series: [{ name: '雷达', // 数据系列名称 type: 'radar', // 雷达类型 data: [ // 数据项 { value: [90, 80, 85, 75, 95, 80], // 每个维度的数值 name: '产品 A' // 数据项名称 }, { value: [70, 85, 90, 80, 90, 70], name: '产品 B' } ], itemStyle: { // 数据项的样式 normal: { color: '#F9713C', lineStyle: { color: '#F9713C', width: 2 }, areaStyle: { color: '#F9713C', opacity: 0.3 } } }, symbolSize: 0, // 不显示数据点 label: { // 数据项的标签 show: true, formatter: function(params) { // 标签的格式化函数 return params.data.name + ': ' + params.value.join(', '); } } }] }; // 使用刚指定的配置项和数据显示表。 myChart.setOption(option); </script> </body> </html> ``` 上面的代码会生成一个简单的雷达,包含两个产品的销售数据。您可以根据自己的需要修改数据项和样式来创建您自己的雷达
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值