用雷达图表达综合得分

echarts的雷达图大家都不陌生吧,就长上面那样子。

现在的需求是:用雷达图表达每位人员的各项得分,并且按照综合得分排序。

已知:雷达图中有N个指标,每个指标对应不同的权重,指标数量及指标权重是不定的。

1.首先需要计算每个legend中每个指标的得分。
单独指标得分=指标权重/指标排名。例如UserA 的Sales指标排名第2,Sales指标权重为20,则UserA的该指标得分为20/2=10分。
每个指标的排名需要单独计算(每个name的数据进行排名)

2.然后需要计算综合指标得分。综合指标得分为每项指标得分加和。

3.最后需要输出按照综合得分降序排列的数据。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>#main{width: 800px;height: 600px;margin: 0 auto;}</style></head><body><div id="main"></div><script src="./echarts.min.js"></script><script>var chartDom = document.getElementById('main');var myChart = echarts.init(chartDom);var option;var AllData={indicator:[{ name: 'zb1', weight: 10 },{ name: 'zb2', weight: 15 },{ name: 'zb3', weight: 16 },],legend:['a', 'b'],seriesData: [{value: [1, 14, 13],name: 'a'},{value: [3, 14, 8],name: 'b'}]}option = {title: {text: '综合得分'},legend: {data: AllData.legend},radar: {indicator:AllData.indicator},series: [{name: '指标数量',type: 'radar',data:AllData.seriesData}]};option && myChart.setOption(option);var newResData=returnClass(AllData.seriesData,AllData.indicator)//入口方法  data参数为echarts的seriesData数据,weight为echarts的indicator数据function returnClass(data,weight){var arr=[];var resArr=[];for(var j=0;j<data[0].value.length;j++){for(var i=0;i<data.length;i++){arr.push({index:i,val:data[i].value[j]})}resArr.push(arr)arr=[];}var resData=[];for(var n=0;n<resArr.length;n++){resData.push(returnRank(resArr[n],weight[n].weight))}return resData;}//输出结果   data为 returnClass方法返回值  方法内根据需求可以随便对返回值进行操作console.log(outputRes(newResData,AllData.legend)) function outputRes(data,legend){var resArr=[];for(var j=0;j<legend.length;j++){var num=0;for(var i=0;i<data.length;i++){num+=parseFloat(data[i][j].res)}resArr.push({name:legend[j],res:num})}return resArr}//排名加计算结果function returnRank(data,weight){data=objValueSort(data,'val',true)var oldData;for(var n=0;n<data.length;n++){if(data[n-1]&&oldData==data[n].val){data[n].val=n}else{oldData=data[n].valdata[n].val=n+1}data[n].res=(weight/data[n].val).toFixed(2)}data=objValueSort(data,'index')return data;}// 根据对象某个属性值进行升序降序/*obj: 需要排序的对象key: 按某个属性进行排序sortType: 升序/降序*/function objValueSort(obj, key, sortType) { // 排序的函数// 1.排序后的key,return y-x 表示降序  x-y 表示升序const newObj = obj.sort((a, b) => {let x = Number(a[key]);let y = Number(b[key]);if (sortType) {return y - x;} else {return x - y;}});return newObj;// 返回排好序的新对象}</script></body>
</html>

雷达图按照权重和排名计算出每项得分,并且按照综合得分排序相关推荐

  1. python夹角余弦雷达图_P19 从三角形夹角计算看math模块

    title: P19|从三角形夹角计算看math模块 author: Adolph Lee categories: 编程基础 tags: Python 基础 本案例主要是让大家熟悉Python的mat ...

  2. 【Excel】Excel如何快速计算出每项所占百分比

    Excel中想要知道个各部分所占的百分比,不需要每个数据单独去算,下面的方法可以下拉复制公式,进行批量快速地计算百分比. 求出B列到总和 点击C2单元格,输入公式=B2/$B$15 ,其中" ...

  3. python话雷达图-Python 详解雷达图/蛛网图

    雷达图-pyecharts 蛛网图,最早知道是在玩FIFA游戏的时候,球员的能力用蛛网图来表示与比较,那时觉得非常新鲜.后来,在实际的工作中,其实很少用到:一方面,直接提供蛛网图的工具少:另一方面,过 ...

  4. python画雷达图-Python 详解雷达图/蛛网图

    雷达图-pyecharts 蛛网图,最早知道是在玩FIFA游戏的时候,球员的能力用蛛网图来表示与比较,那时觉得非常新鲜.后来,在实际的工作中,其实很少用到:一方面,直接提供蛛网图的工具少:另一方面,过 ...

  5. 多级雷达图绘制python_Python 详解雷达图/蛛网图

    雷达图-pyecharts 蛛网图,最早知道是在玩FIFA游戏的时候,球员的能力用蛛网图来表示与比较,那时觉得非常新鲜.后来,在实际的工作中,其实很少用到:一方面,直接提供蛛网图的工具少:另一方面,过 ...

  6. 通用技术设计评价雷达图高考必看知识点

    详细视频讲解:https://download.csdn.net/learn/30661/580572?spm=1003.2001.3001.4143https://download.csdn.net ...

  7. 数据可视化,python英雄联盟个人能力值雷达图绘制。

    英雄联盟(简称LOL)是如今很火的一款由美国拳头游戏(Riot Games)开发的即时战略(MOBA)游戏,游戏由采用5v5组队模式进行比赛.一般以KDA,输出,发育,辅助,生存来反应一个选手各方面的 ...

  8. echarts雷达图详细参数配置说明

    应项目需求需要实现以下效果(当然也是最终的实现): 接下来主要关于下面的几个参数进行设置 雷达图的圈数 雷达图支持绘制的类型:圆形和多角形 雷达图在容器中的位置:center决定也就是雷达图中心在容器 ...

  9. 多维度雷达图怎么做_雷达图 | ECharts 数据可视化实验室

    介绍 雷达图(Radar Chart)又被叫做蜘蛛网图,适用于显示三个或更多的维度的变量.雷达图是以在同一点开始的轴上显示的三个或更多个变量的二维图表的形式来显示多元数据的方法,其中轴的相对位置和角度 ...

  10. Tableau雷达图、凹凸图

    Tableau雷达图.凹凸图课程总结 Tableau雷达图.凹凸图课程视频 第13课作业 1.使用超市数据,制作不同装运年份不同子类别装运成本的凹凸图,以为装运年份为横坐标,子类别按照装运成本排序生成 ...

最新文章

  1. 缓冲区溢出_在Java中使用Google的协议缓冲区
  2. 简单实现支付密码输入框 By HL
  3. Linux 搜索指令
  4. UIView CALayer
  5. 关于CPU的12个硬核干货!
  6. shallow clone
  7. mfc调取摄像头显示并截图_用OpenCV在MFC Dialog中Picture控件上显示摄像头采集实时视频...
  8. 计算机mac地址为空,怎么查看电脑的Mac地址
  9. 浏览器打不开网页 服务器停止响应怎么办,浏览器打不开未响应怎么办
  10. 怪物猎人世界取得服务器信息,怪物猎人世界 Steam好友联机服务器选择工具V1.2...
  11. 第十四章 SQL命令 CREATE TABLE(一)
  12. java学籍管理信息系统模板_java学籍管理系统051
  13. 二进制空间权重矩阵_白话空间统计之二十五:空间权重矩阵(三)解构空间权重矩阵...
  14. 异步电动机的机械特性(转速/转矩-电流特性)
  15. Java实现 LeetCode 780 到达终点(逻辑题)
  16. 【期末复习资料】嵌入式系统及应用
  17. EDB官方网站和文档的介绍
  18. mapgis10-10.28
  19. 串联滞后校正网络的作用_串联滞后校正利用滞后网络的高频幅值
  20. 请教中文的OCR软件哪个最好?

热门文章

  1. UVA 10131 Is Bigger Smarter? (DP,最长条件子序列)
  2. 信息化建设中的IT规划精要
  3. 中控考勤机-C#操作
  4. 如何用计算机发匿名短信,电脑如何给手机发信息_电脑匿名给手机发短信
  5. 智能建造与建筑工业化协同发展主战场之一:攻克核心工业软件
  6. ul li文字不对齐
  7. 这家伙有点懒,还没有个性签名 :) --工具篇03
  8. 两个列向量相乘怎么计算_两个矩阵相乘怎么算?
  9. mysql sniffer 源码,MySQL Sniffer 是一个基于 MySQL 协议的抓包工具
  10. excel查找空值快捷键_Excel之定位和查找(一)